home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / CRS / crs58.d81 / geoprgin.arc / GEOPROGINFO
Text File  |  2009-10-10  |  118KB  |  3,102 lines

  1.  
  2.         ╚ITCH╚IKER'S ╟UIDE ╘O ╟EO╨ROGRAMMER ╓2.0
  3.         ----------------------------------------
  4.  
  5. ╘HIS DOCUMENT CONTAINS A COLLECTION OF WORKING DOCUMENTS CONCERNING
  6. GEO╨ROGRAMMER ╓2.0. ┴S THERE IS NO USER'S MANUAL, THESE FILES WILL HAVE
  7. TO SUFFICE FOR NEW USERS.
  8.                     ┼RIC ┼. ─EL ╙ESTO, ─ECEMBER 1990.
  9.  
  10. ╟ENERAL:
  11.     FEATURES╓2
  12.     ╥╧╒╬─1
  13.     ╓┼╥╙╔╧╬╙
  14.     ╓┼╥╙╘┴╘╙
  15.     ╒╨╟╥┴─┼_╘╧_╓2
  16.     ╘╧─╧
  17.  
  18. ╟EO┴SSEMBLER:
  19.     GEO┴SSEM╘╧─╧
  20.  
  21. ╟EO╠INKER:
  22.     GEO╠INK╘╧─╧
  23.  
  24. ╟EO─EBUGGER:
  25.     GEO─EBUG╘╧─╧
  26.     GEO─EBUG╙PECS╥┼┴─═┼
  27.     ╔NIT╞OR╔╧┬UG
  28.     ╥┼╒╬OTES
  29.     ╥┼╒BUGS
  30.     APP╘YPES
  31.     MEM╨ROTECT
  32.     CBM┴PPS
  33.     HIDE═ODE
  34.     INTERRUPTS
  35.     NMI
  36.     RBOOT╫ARN
  37.     VIEW├OMMAND
  38.     ENVIRONMENT
  39.     WISH╠IST
  40.  
  41. NEW:
  42.     GEO┴SSEMBLER, GEO╠INKER, AND GEO─EBUGGER TAKE FULL ADVANTAGE
  43.     OF EXTRA MEMORY AND 2 ═╚┌ PROCESSOR SPEED OF ├OMMODORE 128
  44.     AND 128─ COMPUTERS.
  45.  
  46. ╬OW: FASTER AND MORE MEMORY-EFFICIENT!
  47.  
  48.             ╟EO╨ROGRAMMER ╔MPROVEMENTS
  49.                  ╔N ╓ERSION 2.0
  50.  
  51. ╟EO┴SSEMBLER:
  52.     ONE PROGRAM RUNS UNDER ╟┼╧╙ 64 ┴╬─ ╟┼╧╙ 128 (80 COLUMN ONLY ON 128)
  53.     FILE SELECTION ─┬ SCROLLS FASTER AND HOLDS 40 FILENAMES
  54.  
  55.     SYMBOL TABLE SIZE:    ├64 MODE    ├128 MODE
  56.                         3210
  57.  
  58.     MACRO TABLE SIZE:    ├64 MODE        ├128 MODE
  59.                 XXX NAMES, XXX CHARS    389 NAMES, 8000 CHARS
  60.  
  61.     OBJECT CODE SIZE LIMIT:    ├64 MODE        ├128 MODE
  62.                 XXX BYTES        7999 BYTES
  63.  
  64.     NEW ERROR MESSAGES:
  65.         "TOO MANY LOCAL LABEL REFERENCES"
  66.         "PHASE ERROR IN VALUE"
  67.         "PHASE ERROR IN FLAG"
  68.         "SYNTAX ERROR"
  69.  
  70.     ("TOO MANY LOCAL LABELS" CHANGED TO "TOO MANY LOCAL LABEL DEFINITIONS")
  71.     HAS .TEXT DIRECTIVE TO ASSEMBLE ASCII INTO ├┬═ TEXT CODES.
  72.     ENDING ─┬ HAS ICON TO RUN THE LINKER
  73.  
  74. ╟EO╠INKER:
  75.     ONE PROGRAM RUNS UNDER ╟┼╧╙ 64 ┴╬─ ╟┼╧╙ 128 (80 COLUMN ONLY ON 128)
  76.     FILE SELECTION ─┬ SCROLLS FASTER AND HOLDS 40 FILENAMES
  77.     ╓╠╔╥ LINKS: UP TO 21 MODULES (RESIDENT + 20 OVERLAY)
  78.     ALLOWS UP TO 20 .REL FILES PER MODULE (OR TOTAL IN ╙┼╤ LINK)
  79.  
  80.     SYMBOLS:                ├64 MODE    ├128 MODE
  81.         ╙┼╤ / ├┬═ APPLICATIONS:        X        X
  82.         ╓╠╔╥ APPLICATIONS:        X        X
  83.             RESIDENT MODULE:    X        3185
  84.             SWAP MODULE:        X        1375
  85.  
  86.     OBJECT CODE SIZE LIMIT:    ├64 MODE        ├128 MODE
  87.                 XXX BYTES        7999 BYTES
  88.  
  89.     NEW ERROR MESSAGES:
  90.         "TOO MANY ERRORS"
  91.         "ILLEGAL FILE NAME"
  92.         "TOO MANY FILES IN A MODULE"
  93.  
  94.     ENDING ─┬ HAS ICON TO RUN THE DEBUGGER
  95.  
  96. ╟EO─EBUGGER:
  97.     ONE PROGRAM RUNS UNDER ╟┼╧╙ 64 ┴╬─ ╟┼╧╙ 128
  98.         SEE SUB-AREAS BELOW FOR NOTED DIFFERENCES BETWEEN MACHINES
  99.  
  100.     SYMBOLS:                ├64 MODE    ├128 MODE
  101.         ╙┼╤ / ├┬═ APPLICATIONS:        
  102.         ╓╠╔╥ APPLICATIONS:
  103.             RESIDENT MODULE:    
  104.             SWAP MODULE:
  105.  
  106.     ╙UPER─EBUGGER (IN ╥┼╒) NOW OFFERS 800 SYMBOLS AND
  107.         1╦ OF MACRO DEFINITIONS.
  108.  
  109.     128 MODE HAS NEW "┬ACK╥AM ╙UPER─EBUGGER", WHICH HIDES IN ┬ACK╥AM.
  110.         ╒SER CAN WRITE FULL-SIZED APPLICATIONS IN ╞RONT╥AM.
  111.         ├AN HANDLE 1000 SYMBOLS AND 1╦ OF MACRO DEFINITIONS.
  112. **        ╘HIS NEW 20╦ DEBUGGER DOES NOW INCREASE SIZE OF ╟EO─EBUGGER:
  113.             THERE IS A DIFFERENTIAL LOADER SCHEME WHICH LOADS
  114.             IN THE SUPER DEBUGGER AND THEN RELOCATES THE CODE
  115.             FOR EITHER THE ╥┼╒ OR ┬ACK╥AM.
  116.  
  117.     NO ╟┼╧╙ SCREEN ASSUMPTIONS:
  118.         DISPLAYS DEBUG INFORMATION ON 40-COLUMN SCREEN,
  119.             AND RETURNS TO WHATEVER SCREEN (AND SCREEN MODE)
  120.             WAS IN USE WHEN RUNNING USER CODE, OR WHEN ╞7 IS PRESSED
  121.         SEE BELOW ABOUT DEBUGGER'S SHADOW VARS FOR ╓╔├ PARAMETERS
  122.  
  123.     NEW AND IMPROVED MEMORY READ/WRITE ROUTINE:
  124.         ╔NTERCEPTS (AND REDIRECTS TO DEBUGGER SHADOW VARIABLES)
  125.         READS AND WRITES TO:
  126.             $0000 AND $0001 (REGISTERS WHICH CONTROL MEMORY MAP)
  127.             AREA OF ZERO PAGE WHICH IS USED BY DEBUGGER
  128.             MEMORY AREAS USED BY ╥┼╒ ╙UPER─EBUGGER (REDIRECTS
  129.                 TO USER MEMORY SWAP AREA IN BANK #0 OF ╥┼╒)
  130.             SEVERAL ╓╔├ CHIP REGISTERS, INCLUDING $──00 (CIA2┬ASE),
  131.                 WHICH CONTROLS ╓╔├ MEMORY MAP
  132.             ON 128: $─500-$─50┴ (MEMORY MANAGMENT UNIT)
  133.                 $╞╞00-$╞╞04 (MORE MMU REGISTERS)
  134.                 $─030       (1═╚┌/2═╚┌ SWITCH)
  135.  
  136.         ─ISALLOWS READS AND WRITES TO:
  137.             ALL ╥╧═ AREAS (SO NO BLEED THROUGH TO ╥┴═ OCCURS)
  138.             ANY AREA WHERE DEBUGGER CODE OR SYMBOLS ARE STORED
  139.                 (5 DIFFERENT CASES HERE, DUE TO 3 DEBUGGER TYPES
  140.                 ON 2 MACHINES.)
  141.             STACK AREA BELOW CURRENT ╙╨ (DEBUGGER IS USING)
  142.             PAGE 3 ╔╥╤/┬╥╦/╬═╔ VECTORS USED BY ╥╧═S
  143.             $╞╞╞9 AREA ╔╥╤/┬╥╦/╬═╔ VECTORS
  144.             RAM EXPANSION UNIT'S ─═┴ CONTROLLER, IF USING
  145.                 ╥┼╒ ╙UPER─EBUGGER
  146.             "CTAB" - EXTERNAL 1╦X4 ╥┴═ USED BY ╓╔├ CHIP IN TEXT
  147.                 MODE. ╧N 128, THERE ARE TWO OF THESE. ─EBUGGER
  148.                 USES CTAB #1, AND PREVENTS ╥/╫ TO IT. ╒SER IS
  149.                 FREE TO USE CTAB #0.
  150.  
  151.         ╫HEN ACCESSING ╥┴═ IN 128 MODE, CALCULATES EFFECTIVE ADDRESS,
  152.             TAKING BANK NUMBER AND BANK SHARING STATUS INTO ACCOUNT.
  153.  
  154.     ╬EW AND IMPROVED CONTEXT SWITCH (SECTION OF CODE WHICH BRIDGES GAP
  155.     BETWEEN DEBUGGER AND USER CODE):
  156.         TRAPS INTERRUPTS WHICH OCCUR WHEN USER'S APPLICATION SWAPS ╥╧═
  157.             IN WITHOUT DISABLING INTERRUPTS; WARNS USER THROUGH
  158.             DEBUGGER MESSAGE.
  159.         ON 128 SYSTEM:
  160.             HANDLES BANK-TO-BANK SWITCHING REQUIRED TO
  161.                 GET FROM EITHER BANK TO ONE OF 3 DEBUGGERS.
  162.             SAVES AND RESTORES PROCESSOR CLOCK SPEED 1═╚┌ / 2═╚┌
  163.  
  164. *    ╔MPROVED ╟ET┬ / ╨UT┬ COMMAND: WORKS WITH 1571 AND 1581 DRIVES.
  165.  
  166. *    ─ISASSEMBLES AND TOP-STEPS THROUGH IN-LINE CALLS TO ╟┼╧╙ CORRECTLY.
  167.     ╒SER CAN DISABLE THIS OPTION.
  168.  
  169. *    DISPLAYS ├╨╒_─┴╘┴ ($0001) OR ├ONFIG ($╞╞00) AS PRIMARY MEMORY MAP 
  170.         REGISTER IN 64 AND 128 MODES RESPECTIVELY. ╘HIS AFFECTS
  171.         THE "╥" REGISTER DISPLAY COMMAND AND THE "╥┼╟" REGISTER
  172.         DISPLAY/MODIFY COMMAND.
  173.  
  174.     ═ORE ERROR CHECKING DURING FILE LOADS, WITH INFORMATIVE DIALOG BOXES:
  175.         EXTENSIVE ERROR CHECKS AND GOOD ERROR DIALOG BOXES FOR:
  176.             DEBUGGER MODULE SWAPS
  177.             USER APPLICATION LOADS
  178.             MACRO FILE LOADS
  179.             SYMBOL FILE LOADS
  180.         DISPLAYS INFORMATIVE ERROR DIALOG BOX FOR FORMAT ERRORS
  181.             IN GEO╫RITE MACRO DEFINITION FILES. ─ISPLAYS FILENAME,
  182.             ERROR MESSAGE, PAGE AND LINE NUMBER.
  183.  
  184.     CAN DEBUG APPLICATIONS WHICH TRASH ╟┼╧╙
  185.         APPLICATION MUST HANDLE LOADING ITS OWN CODE IN OVER ╟┼╧╙ AREAS
  186.         APPLICATION MUST DISABLE INTERRUPTS OR SET UP ITS OWN
  187.             INTERRUPT SERVICE ROUTINE. ╫ILL HAVE TO BE CLEVER
  188.             TO PLACE HIS INTERRUPT VECTOR IN $334 AREA WHEN
  189.             HIS APPLICATION IS RUNNING UNDER THE DEBUGGER.
  190.             (╔ WILL SUPPLY THIS CODE IN THE NEW SAMPLE APP.)
  191.  
  192.     ╒NSEEN COMPLICATIONS WHICH ARE HANDLED:
  193.         BANK SWITCH CONCERNS DURING:
  194.             CONTEXT SWITCH
  195.             ╩╙╥ COMMAND
  196.             ╟ET┬ / ╨UT┬ COMMANDS
  197.             RBOOT
  198.             MAINTAINING SOFTWARE BREAKPOINTS
  199.             SINGLE STEP BREAKPOINT
  200.  
  201.     ┴ND ALL BUGS HAVE BEEN FIXED!
  202.  
  203. ╙AMPLE ╞ILES:
  204.  
  205.  
  206.  
  207.             ╟┼╧╨╥╧╟╥┴══┼╥ ╓2.0
  208.             ┬┼╘┴ ╘┼╙╘ ╥╧╒╬─ #1
  209.                ╩ULY 29, 1988
  210.  
  211.  
  212.     *** ╨╠┼┴╙┼ ╥┼┴─ ╘╚╔╙ ┬┼╞╧╥┼ ┘╧╒ ╔╬╙╘┴╠╠ ╘╚┼ ─╔╙╦ ***
  213.  
  214.  
  215. ├ONGRATULATIONS ON BEING SELECTED AS A TESTER FOR GEO╨ROGRAMMER ╓2.0 !
  216.  
  217. ┬ECAUSE GEO╨ROGRAMMER IS SUCH A COMPLEX PRODUCT, AND BECAUSE WE WANT
  218. TO MAKE SURE IT IS 100% BUG-FREE WHEN WE START SHIPPING IT, WE HAVE DECIDED
  219. TO PUT GEO╨ROGRAMMER ╓2.0 THROUGH TWO ROUNDS OF ┬ETA ╘ESTING.
  220.  
  221. ╘HIS IS ROUND ONE. ╔N THIS PACKAGE YOU WILL FIND YOUR GEO╨ROGRAMMER ╓2.0
  222. DISK, AND SOME QUICK NOTES ABOUT DIFFERENCES FROM VERSIONS ╓1.0 AND ╓1.1.
  223. ╒NFORTUNATELY, WE HAVE NOT HAD THE TIME TO FULLY TEST GEO╠INKER,
  224. AND WE HAVE NOT YET COMPLETED UPGRADING THE COLLECTION OF SAMPLE FILES
  225. TO ╟┼╧╙ ╓2.0 LEVEL. ╘HEREFORE, DO NOT BE CONCERNED IF YOU ENCOUNTER
  226. SEVERAL BUGS IN GEO╠INKER. ╩UST LET ME KNOW BY FILLING OUT ONE OF THE
  227. ENCLOSED ┬UG ╥EPORT FORMS, AND SENDING THE FORM BACK (ALONG WITH
  228. SOURCE FILES IF REQUIRED) TO ┬ERKELEY ╙OFTWORKS AS SOON AS POSSIBLE.
  229.  
  230. ╧VER THE NEXT THREE TO FOUR WEEKS WE WILL PUT THE FINISHING TOUCHES
  231. ON THE PRODUCT, WILL FIX ANY BUGS THAT YOU FIND, AND WILL DO MORE IN-HOUSE
  232. TESTING. ╫E WILL THEN SEND YOU A GEO╨ROGRAMMER ╓2.0 ┬┼╘┴ 2 DISK, AND ROUND
  233. TWO WILL HAVE BEGUN. ╫E EXPECT THE ENTIRE ┬ETA ╘EST PERIOD (ROUNDS ONE
  234. AND TWO) TO LAST FIVE TO SIX WEEKS.
  235.  
  236. ╫E DO NOT YET HAVE A DRAFT OF THE GEO╨ROGRAMMER ╓2.0 ╒SER'S ═ANUAL ┴DDENDUM
  237. TO SEND YOU, SO THE INFORMATION ON THE FOLLOWING PAGES WILL HAVE TO
  238. SUFFICE FOR THE NEXT FEW WEEKS. ╞ROM A USER-INTERFACE STANDPOINT,
  239. THERE ARE FEW DIFFERENCES BETWEEN VERSIONS 1.0 AND 2.0, SO IF YOU HAVE
  240. NEVER USED THE PRODUCT BEFORE, YOU CAN FOLLOW THE INSTRUCTIONS IN THAT TEXT.
  241.  
  242. ╔F YOU HAVE BEEN USING GEO╨ROGRAMMER ╓1.0 OR ╓1.1 FOR SOME TIME, PLEASE
  243. BE SURE TO TRY ASSEMBLING AND LINKING AND SOURCE FILES YOU'VE ALREADY
  244. WRITTEN.
  245.  
  246. ╔═╨╧╥╘┴╬╘: YOU WILL NOT BE ABLE TO INSTALL GEO─EBUGGER ON A 1571 DRIVE
  247. WHICH IS CONFIGURED AS A 1571. ┘OU MUST RE-CONFIGURE THE DRIVE AS A 1541,
  248. AND RE-OPEN THE GEO╨ROGRAMMER ╓2.0 DISK, BEFORE YOU CAN INSTALL GEO─EBUGGER.
  249. ╘HIS BUG WILL BE CORRECTED IN THE SOFTWARE YOU RECEIVE IN ROUND TWO.
  250.  
  251. ╔F YOU HAVE ANY QUESTIONS REGARDING OUR ┬ETA ╘EST PROGRAM OR THE
  252. GEO╨ROGRAMMER PRODUCT, PLEASE CONTACT ╦EVIN ┬OLAND, AND HE WILL
  253. CONNECT YOU TO ME OR ONE OF THE OTHER TEAM MEMBERS.
  254.  
  255. ╫ELCOME TO THE TEAM, AND THANKS FOR YOUR HELP!
  256.  
  257.  
  258.  
  259. ┼RIC ┼. ─EL ╙ESTO
  260. ╟EO╨ROGRAMMER
  261. ╨ROJECT ╠EADER
  262.  
  263.  
  264.  
  265.  
  266.             ╙╘┴╘┼ ╧╞ ╟┼╧╨╥╧╟╥┴══┼╥ ╓2.0
  267.                  ┬┼╘┴ ╘┼╙╘ ╥╧╒╬─ 1
  268.  
  269.  
  270. GEO┴SSEMBLER:
  271.     ╙HOULD BE FAIRLY SOLID. ┬E TOUGH ON IT.
  272.  
  273. GEO╠INKER:
  274.     ╚AS SOME KNOWN BUGS, BUT SHOULD BE ABLE TO CORRECTLY LINK
  275.     ╙┼╤, ├┬═, AND ╓╠╔╥ APPLICATIONS.
  276.  
  277. GEO─EBUGGER:
  278.     ╙HOULD BE ROCK SOLID. ╘ORTURE IT. ═AKE IT DIE.
  279.  
  280. ╙AMPLE ╟┼╧╙ ╞ILES:
  281.     ┴RE ON THE DISK, AND HAVE BEEN UPGRADED TO INCLUDE ╟┼╧╙ 128
  282.     AND ╟┼╧╙ 64 ╓2.0 DEFINITIONS. ╬OT THAT BEFORE YOU INCLUDE
  283.     THESE FILES, YOU MUST SET THE CONSTANTS ├64 AND ├128 TO
  284.     ╘╥╒┼ ($╞╞) OR ╞┴╠╙┼ ($00).
  285.  
  286. ╙AMPLE╙EQ:
  287.     ╬OT INCLUDED ON ┬ETA ╥OUND 1 DISK.
  288.  
  289. ╙AMPLE╓LIR:
  290.     ┴LL THE REQUIRED FILES ARE ON THE ┬ETA ╥OUND 1 DISK. ╬OTE
  291.     THAT THE ╙AM╓LIR┼QUATES FILE SETS THE ├64 AND ├128 CONSTANTS.
  292.     ╘HESE ARE PRESENTLY SET SO THAT THE APPLICATION WILL
  293.     ONLY RUN UNDER ├64 ╟┼╧╙. ╔F YOU ARE TESTING ON A ├128, BE SURE
  294.     TO CHANGE THESE CONSTANT DEFINITIONS BEFORE YOU BEGIN.
  295.     ┴LSO- THERE ARE SEVERAL NEW ADDITIONS TO THE ╙AMPLE╓LIR FILES,
  296.     SUCH AS SUPPORT FOR KEYBOARD SHORTCUTS IN THE MENUS. ┘OU CAN
  297.     EXPECT TO FIND SOME PRETTY OBVIOUS BUGS IN SOME OF THESE NEW
  298.     FEATURES.
  299.  
  300. ╙AMPLE─┴:
  301.     ╬OT INCLUDED ON ┬ETA ╥OUND 1 DISK.
  302.  
  303. ╙AMPLE├┬═:
  304.     ╘HIS IS A NEW SAMPLE FILE, TO DEMONSTRATE THE NON-╟┼╧╙ CAPABILITY
  305.     OF GEO─EBUGGER ╓2.0. ╬OT INCLUDED ON ┬ETA ╥OUND 1 DISK.
  306.  
  307.  
  308.  
  309.  
  310.             ╟┼╧╨╥╧╟╥┴══┼╥ ╔═╨╥╧╓┼═┼╬╘╙
  311.                  ╔N ╓ERSION 2.0
  312.  
  313.  
  314. GEO┴SSEMBLER:
  315.     ONE PROGRAM RUNS UNDER ╟┼╧╙ 64 ┴╬─ ╟┼╧╙ 128 (80 COLUMN ONLY ON 128)
  316.     FILE SELECTION ─┬ SCROLLS FASTER AND HOLDS 239 FILENAMES
  317.     IMPROVED OUTPUT FILE CREATION: FASTER ASSEMBLIES, DELETES PARTIAL
  318.         FILES AFTER DISK ERRORS
  319.     HAS .TEXT DIRECTIVE TO ASSEMBLE ASCII INTO ├┬═ TEXT CODES.
  320.     EXAMPLE:    .TEXT    "╘HIS IS TEXT FOR THE ├┬═ TEXT SCREEN"
  321.  
  322.     ├64 MODE ONLY:
  323.         WILL GENERATE UP TO 3584 CODE BYTES
  324.         MAX NUMBER OF MACRO DEFINITIONS: 100 
  325.         SIZE OF MACRO STORAGE BUFFER: 3560 
  326.         SYMBOL TABLE HOLDS 1151 SYMBOLS
  327.  
  328.     ├128 MODE ONLY:
  329.         WILL GENERATE UP TO 7670 CODE BYTES
  330.         MAX NUMBER OF MACRO DEFINITIONS: 389 
  331.         SIZE OF MACRO STORAGE BUFFER: 12520 
  332.         SYMBOL TABLE HOLDS 3208 SYMBOLS
  333.  
  334. GEO╠INKER:
  335.     ONE PROGRAM RUNS UNDER ╟┼╧╙ 64 ┴╬─ ╟┼╧╙ 128 (80 COLUMN ONLY ON 128)
  336.     FILE SELECTION ─┬ SCROLLS FASTER AND HOLDS 210 FILENAMES
  337.     IMPROVED OUTPUT FILE CREATION: FASTER LINKS, DELETES PARTIAL
  338.         FILES AFTER DISK ERRORS
  339.  
  340.     IMPROVED .LNK FILE PARSING: ALLOWS MULTIPLE PAGE .LNK FILES,
  341.         GIVES MORE INFORMATIVE ERROR MESSAGES
  342.     .╙┘═ FILE CAN HAVE 60 LINES/PAGE
  343.     ╓╠╔╥ LINKS: UP TO 21 MODULES (RESIDENT + 20 OVERLAY)
  344.     ALLOWS UP TO 20 .REL FILES PER MODULE (OR TOTAL IN ╙┼╤ LINK)
  345.  
  346.     ├64 MODE ONLY:
  347.         BUFFER FOR COMPACTED .╠╬╦ FILE HAS 3840 BYTES
  348.         CODE BUFFER IS 3584 BYTES
  349.         RESIDENT SYMBOL TABLE HOLDS 1274 SYMBOLS
  350.         SWAP MODULE SYMBOL TABLE HOLDS 850 SYMBOLS
  351.         DURING ╙┼╤ AND ├┬═ APPLICATION LINKS, COMBINES SYMBOL
  352.             TABLES TO ALLOW A TOTAL OF 2124 SYMBOLS
  353.  
  354.     ├128 MODE ONLY:
  355.         BUFFER FOR COMPACTED .╠╬╦ FILE HAS 3840 BYTES
  356.         CODE BUFFER IS 7670 BYTES
  357.         RESIDENT SYMBOL TABLE HOLDS 3217 SYMBOLS
  358.         SWAP MODULE SYMBOL TABLE HOLDS 1740 SYMBOLS
  359.  
  360.  
  361.  
  362. (STATE OF THE PRODUCT, CONTINUED...)
  363.  
  364. GEO─EBUGGER:
  365.     IMPROVED ERROR DETECTION WHEN PARSING .─┬═ FILES,
  366.         PRINTS PAGE AND LINE NUMBER WITH ERROR MESSAGE
  367.     CAN TOP-STEP OVER IN-LINE CALLS TO ╟┼╧╙ ROUTINES SUCH AS I_╥ECTANGLE
  368.  
  369.     ═INI ─EBUGGER (├64/├128)
  370.         OCCUPIES $3500-$5╞╞╞, PLUS $334-$3FF IN BANK 1
  371.         (HOLD ╥╒╬/╙╘╧╨ KEY DOWN WHILE RUNNING GEO─EBUGGER
  372.         TO INVOKE THE MINI-DEBUGGER.)
  373.  
  374.     ╙UPER ─EBUGGER (├64/├128 WITH ╥┼╒)
  375.         MACRO BUFFER IS 1024 BYTES
  376.         SYMBOL TABLE HOLDS 731 SYMBOLS
  377.         OCCUPIES SPACE IN ╥┼╒ BANK 0, PLUS $334-$3FF IN BANK 1
  378.         (╔F YOU HAVE A ╥┴═ ┼╪╨┴╬╙╔╧╬ ╒╬╔╘ ON YOUR SYSTEM, 
  379.         THIS DEBUGGER WILL AUTOMATICALLY LOAD WHEN YOU RUN
  380.         GEO─EBUGGER. ┬Y HOLDING ╥╒╬/╙╘╧╨ OR ╙╨┴├┼ DOWN,
  381.         YOU CAN OVERRIDE THIS TO RUN THE ═INI-─EBUGGER OR ┬ACK╥AM
  382.         ╙UPER-─EBUGGER.)
  383.  
  384.     ┬ACK╥AM ╙UPER ─EBUGGER (├128 ONLY)
  385.     (128 MODE HAS NEW "┬ACK╥AM ╙UPER─EBUGGER", WHICH HIDES IN ┬ACK╥AM.
  386.     ╒SER CAN WRITE FULL-SIZED APPLICATIONS IN ╞RONT╥AM.)
  387.         ├AN HANDLE 1000 SYMBOLS AND 1╦ OF MACRO DEFINITIONS.
  388.         MACRO BUFFER IS 1024 BYTES
  389.         SYMBOL TABLE HOLDS 910 SYMBOLS
  390.         OCCUPIES $2000-$9╞╞╞ IN ├128 BANK 0, PLUS $334-$3FF IN BANK 1
  391.         (╔F YOU HAVE AN ╥┼╒ ON YOUR ├128 SYSTEM, YOU MUST HOLD 
  392.         THE ╙╨┴├┼ KEY DOWN WHILE RUNNING GEO─EBUGGER TO INVOKE THE
  393.         ┬ACK╥AM ╙UPER-─EBUGGER.)
  394.  
  395.  
  396.  
  397. ┴DDITIONAL TECHNICAL INFORMATION ON GEO─EBUGGER ╓2.0
  398. (┘OU MIGHT FIND THIS INFORMATION INTERESTING.)
  399.  
  400.     NO ╟┼╧╙ SCREEN ASSUMPTIONS:
  401.         DISPLAYS DEBUG INFORMATION ON 40-COLUMN SCREEN,
  402.             AND RETURNS TO WHATEVER SCREEN (AND SCREEN MODE)
  403.             WAS IN USE WHEN RUNNING USER CODE, OR WHEN ╞7 IS PRESSED
  404.         SEE BELOW ABOUT DEBUGGER'S SHADOW VARS FOR ╓╔├ PARAMETERS
  405.  
  406.     NEW AND IMPROVED MEMORY READ/WRITE ROUTINE:
  407.         ╔NTERCEPTS (AND REDIRECTS TO DEBUGGER SHADOW VARIABLES)
  408.         READS AND WRITES TO:
  409.             $0000 AND $0001 (REGISTERS WHICH CONTROL MEMORY MAP)
  410.             AREA OF ZERO PAGE WHICH IS USED BY DEBUGGER
  411.             MEMORY AREAS USED BY ╥┼╒ ╙UPER─EBUGGER (REDIRECTS
  412.                 TO USER MEMORY SWAP AREA IN BANK #0 OF ╥┼╒)
  413.             SEVERAL ╓╔├ CHIP REGISTERS, INCLUDING $──00 (CIA2┬ASE),
  414.                 WHICH CONTROLS ╓╔├ MEMORY MAP
  415.             ON 128: $─500-$─50┴ (MEMORY MANAGMENT UNIT)
  416.                 $╞╞00-$╞╞04 (MORE MMU REGISTERS)
  417.                 $─030       (1═╚┌/2═╚┌ SWITCH)
  418.  
  419.         ─ISALLOWS READS AND WRITES TO:
  420.             ALL ╥╧═ AREAS (SO NO BLEED THROUGH TO ╥┴═ OCCURS)
  421.             ANY AREA WHERE DEBUGGER CODE OR SYMBOLS ARE STORED
  422.                 (5 DIFFERENT CASES HERE, DUE TO 3 DEBUGGER TYPES
  423.                 ON 2 MACHINES.)
  424.             STACK AREA BELOW CURRENT ╙╨ (DEBUGGER IS USING)
  425.             PAGE 3 ╔╥╤/┬╥╦/╬═╔ VECTORS USED BY ╥╧═S
  426.             $╞╞╞9 AREA ╔╥╤/┬╥╦/╬═╔ VECTORS
  427.             RAM EXPANSION UNIT'S ─═┴ CONTROLLER, IF USING
  428.                 ╥┼╒ ╙UPER─EBUGGER
  429.             "CTAB" - EXTERNAL 1╦X4 ╥┴═ USED BY ╓╔├ CHIP IN TEXT
  430.                 MODE. ╧N 128, THERE ARE TWO OF THESE. ─EBUGGER
  431.                 USES CTAB #1, AND PREVENTS ╥/╫ TO IT. ╒SER IS
  432.                 FREE TO USE CTAB #0.
  433.  
  434.         ╫HEN ACCESSING ╥┴═ IN 128 MODE, CALCULATES EFFECTIVE ADDRESS,
  435.             TAKING BANK NUMBER AND BANK SHARING STATUS INTO ACCOUNT.
  436.  
  437.     ╬EW AND IMPROVED CONTEXT SWITCH (SECTION OF CODE WHICH BRIDGES GAP
  438.     BETWEEN DEBUGGER AND USER CODE):
  439.         TRAPS INTERRUPTS WHICH OCCUR WHEN USER'S APPLICATION SWAPS ╥╧═
  440.             IN WITHOUT DISABLING INTERRUPTS; WARNS USER THROUGH
  441.             DEBUGGER MESSAGE.
  442.         ON 128 SYSTEM:
  443.             HANDLES BANK-TO-BANK SWITCHING REQUIRED TO
  444.                 GET FROM EITHER BANK TO ONE OF 3 DEBUGGERS.
  445.             SAVES AND RESTORES PROCESSOR CLOCK SPEED 1═╚┌ / 2═╚┌
  446.  
  447. *    ╔MPROVED ╟ET┬ / ╨UT┬ COMMAND: WORKS WITH 1571 AND 1581 DRIVES.
  448.  
  449. *    ─ISASSEMBLES AND TOP-STEPS THROUGH IN-LINE CALLS TO ╟┼╧╙ CORRECTLY.
  450.     ╒SER CAN DISABLE THIS OPTION.
  451.  
  452. *    DISPLAYS ├╨╒_─┴╘┴ ($0001) OR ├ONFIG ($╞╞00) AS PRIMARY MEMORY MAP 
  453.         REGISTER IN 64 AND 128 MODES RESPECTIVELY. ╘HIS AFFECTS
  454.         THE "╥" REGISTER DISPLAY COMMAND AND THE "╥┼╟" REGISTER
  455.         DISPLAY/MODIFY COMMAND.
  456.  
  457.  
  458.  
  459. ┴DDITIONAL TECHNICAL INFORMATION ON GEO─EBUGGER ╓2.0 (CONTINUED)
  460.  
  461.     ═ORE ERROR CHECKING DURING FILE LOADS, WITH INFORMATIVE DIALOG BOXES:
  462.         EXTENSIVE ERROR CHECKS AND GOOD ERROR DIALOG BOXES FOR:
  463.             DEBUGGER MODULE SWAPS
  464.             USER APPLICATION LOADS
  465.             MACRO FILE LOADS
  466.             SYMBOL FILE LOADS
  467.         DISPLAYS INFORMATIVE ERROR DIALOG BOX FOR FORMAT ERRORS
  468.             IN GEO╫RITE MACRO DEFINITION FILES. ─ISPLAYS FILENAME,
  469.             ERROR MESSAGE, PAGE AND LINE NUMBER.
  470.  
  471.     CAN DEBUG APPLICATIONS WHICH TRASH ╟┼╧╙
  472.         APPLICATION MUST HANDLE LOADING ITS OWN CODE IN OVER ╟┼╧╙ AREAS
  473.         APPLICATION MUST DISABLE INTERRUPTS OR SET UP ITS OWN
  474.             INTERRUPT SERVICE ROUTINE. ╫ILL HAVE TO BE CLEVER
  475.             TO PLACE HIS INTERRUPT VECTOR IN $334 AREA WHEN
  476.             HIS APPLICATION IS RUNNING UNDER THE DEBUGGER.
  477.             (╔ WILL SUPPLY THIS CODE IN THE NEW SAMPLE APP.)
  478.  
  479.     ╒NSEEN COMPLICATIONS WHICH ARE HANDLED:
  480.         BANK SWITCH CONCERNS DURING:
  481.             CONTEXT SWITCH
  482.             ╩╙╥ COMMAND
  483.             ╟ET┬ / ╨UT┬ COMMANDS
  484.             RBOOT
  485.             MAINTAINING SOFTWARE BREAKPOINTS
  486.             SINGLE STEP BREAKPOINT
  487.  
  488.     ┴ND ALL BUGS HAVE BEEN FIXED!
  489.  
  490.  
  491.  
  492.  
  493.  
  494. ┴DDITIONAL TECHNICAL INFORMATION ON GEO─EBUGGER ╓2.0 (CONTINUED)
  495.  
  496.         ╚OW ╟EO─EBUGGER MANAGES MACHINE-DEPENDENT
  497.             MEMORY-MAP ENVIRONMENT INFORMATION
  498.  
  499. ╘HE DEBUGGER CARRIES MEMORY-MAP ENVIRONMENT INFORMATION, WHICH IS MACHINE-
  500. DEPENDENT, AROUND IN GENERIC VARIABLES SUCH AS APP┬ANK╔NFO1 AND APP┬ANK╔NFO2.
  501. ╘HIS WAY, THE ROUTINES WHICH JUST MOVE THIS INFORMATION AROUND (BUT DON'T
  502. DIRECTLY USE IT) ARE MACHINE-INDEPENDENT.
  503.  
  504. ┼XECUTION ┼NVIRONMENT:
  505.  
  506. ╫HEN THE DEBUGGER STOPS EXECUTION OF AN APPLICATION (╥┼╙╘╧╥┼ PRESSED OR
  507. ╙┬╨ HIT), THE USER'S "EXECUTION ENVIRONMENT" IS SAVED. ╘HIS INCLUDES:
  508.  
  509.     PROCESSOR REGISTER AND FLAG VALUES
  510.     ╨├ ADDRESS
  511.     CURRENT BANK INFORMATION
  512.     ZERO PAGE VARIABLES
  513.     STACK INFORMATION
  514.  
  515. ╫E CALL THE ╨├ ADDRESS AND ITS MEMORY-MAP INFORMATION THE "┼XECUTION
  516. ┼NVIRONMENT" OR MORE SIMPLY, THE "╨├ POINTER".
  517.  
  518. ╓IEWING ┼NVIRONMENT:
  519.  
  520. ╧NCE THE DEBUGGER HAS STOPPED AN APPLICATION, THE "VIEWING ENVIRONMENT" IS THE
  521. SAME AS THE "EXECUTION ENVIRONMENT". ╘HIS MEANS THAT ALL OF THE MEMORY
  522. EXAMINATION AND MODIFICATION COMMANDS USE THE SAME MEMORY-MAP INFORMATION AS
  523. THE ┼XECUTION ┼NVIRONMENT.
  524.  
  525. ╘HROUGH USE OF THE ╙┼╘╓╔┼╫ COMMAND, THE VIEWING ENVIRONMENT CAN BE CHANGED.
  526. ┘OU CAN SET UP A NEW MEMORY-MAP CONFIGURATION, AND THEN USE THE MEMORY
  527. EXAMINATION AND MODIFICATION COMMANDS TO READ/WRITE MEMORY IN THIS NEW
  528. CONFIGURATION.
  529.  
  530. ╫HEN YOU GIVE THE ╟╧ COMMAND TO RESUME EXECUTION, THE DEBUGGER RESTORES THE
  531. EXECUTION ENVIROMENT, AND YOUR PROGRAM CONTINUES EXECUTION.
  532.  
  533. ╫E CALL THE VIEWING ADDRESS AND ITS ENVIRONMENT THE "╠├ POINTER".
  534.  
  535. -------------------------------------------------------------------------------
  536. ┴SPECTS OF ╟EO─EBUGGER WHICH MUST CHANGE ACCORDING TO MACHINE-DEPENDENCIES
  537. IN ╓2.0, TO REMAIN COMPATIBLE WITH ╓1.0. (╦ILL THESE IN ╓3.0.)
  538.  
  539. ╥EGISTER COMMAND:
  540.     DISPLAYS ╨├ ADDRESS, HIGHLIGHTS ADDRESS IF EFFECTIVE ADDRESS OF
  541.         ╨├ (CONSIDERING ╨├ BANK INFO) IS BANK 0.
  542.  
  543.     DISPLAYS ├╨╒_─┴╘┴ VALUE (╔T REALLY SHOULD NOT DO THIS ANYMORE,
  544.         BUT ╔ AM TRYING TO MAINTAIN COMPATABILITY WITH ╓1.
  545.  
  546.         64:    READ DIRECTLY FROM APP┬ANK╔NFO1
  547.  
  548.         128:    [7-3,0]: DIRECT READ FROM MEMORY
  549.             [21]: SHADOW WITH APP├╨╒_┬21
  550.  
  551.  
  552.  
  553. ┴DDITIONAL TECHNICAL INFORMATION ON GEO─EBUGGER ╓2.0 (CONTINUED)
  554.  
  555. ╥EGISTER ╧PEN ├OMMAND:
  556.     ..INCLUDES ══ REGISTER: IS ├╨╒_─┴╘┴. (╘O BE COMPATIBLE WITH ╓1)
  557.     64:    DIRECTLY READ/WRITE TO APP┬ANK╔NFO1
  558.  
  559.     128:    [7-3,0]: DIRECTLY ╥/╫ TO MEMORY
  560.         [21]: SHADOW WITH APP├╨╒_┬21
  561.  
  562. -------------------------------------------------------------------------------
  563. ┴SPECTS OF ╟EO─EBUGGER WHICH ARE MACHINE-INDEPENDENT.
  564.  
  565. ═EMORY EXAMINATION AND MODIFICATION:
  566.     BANK COMMAND:    AFFECTS ╠├'S BANK INFO: CUR┬ANK╔NFO1 AND CUR┬ANK╔NFO2
  567.  
  568.     OPEN MODES:    USES ╠├'S BANK INFO
  569.             HIGHLIGHTS ADDRESS IF IS IN PHYSICAL BANK 0
  570.  
  571.     DUMP COMMAND:    USES ╠├'S BANK INFO
  572.             HIGHLIGHTS ADDRESS IF IS IN PHYSICAL BANK 0
  573.  
  574.     MOVE/FILL/DIFF/FIND:    USES ╠├'S BANK INFO
  575.                 HIGHLIGHTS ADDRESS IF IS IN PHYSICAL BANK 0
  576.  
  577.     @ AND @@ OPERATORS:    USES ╠├'S BANK INFO
  578.  
  579. ╙INGLE AND ╘OP-STEP BREAKPOINTS:
  580.     MAINTAIN THEIR OWN BANK INFORMATION
  581.         (COPIED FROM ╨├ BANK INFO BEFORE EXECUTION BEGUN)
  582.  
  583. ╙OFTWARE ┬REAKPOINTS:
  584.     MAINTAIN THEIR OWN BANK INFORMATION
  585.         (COPIED FROM ╨├ BANK INFO BEFORE EXECUTION BEGUN)
  586.  
  587. ╨├ COMMAND:
  588.     WITHOUT ARGUMENT:    COPY ╨├ ADDRESS AND BANK INFO TO ╠├
  589.                 (RESTORES EXECUTION ENVIRONMENT)
  590.  
  591.     WITH ARGUMENT: (SAME AS SETTING ╨├ IN OPEN MODE)
  592.                 SET ╨├ ADDRESS = ARGUMENT
  593.                 SET ╨├ BANK INFO = ╠├ BANK INFO
  594.  
  595.  
  596.  
  597.  
  598. ┴DDITIONAL TECHNICAL INFORMATION ON GEO─EBUGGER ╓2.0 (CONTINUED)
  599. (╘╚╔╙ ╨╧╥╘╔╧╬ ╧╞ ╘╚┼ ╟┼╧─┼┬╒╟╟┼╥ ╘┼╙╘ ╠╔╙╘ ╔╙ ╙╒╨╨╠╔┼─ ╘╧ ╟╔╓┼
  600. ┘╧╒ ┴╬ ╔─┼┴ ╧╞ ╚╧╫ ╘╚┼ ═┼═╧╥┘-┼╬╓╔╥╧╬═┼╬╘ ═┴╬┴╟┼═┼╬╘ ├╧══┴╬─╙ ╫╧╥╦.)
  601.  
  602. 4.10 ═EMORY-═AP ┼NVIRONMENT ═ANAGEMENT
  603.  
  604. 4.10.1 ╔╬╔╘╓╔┼╫ COMMAND: COPIES THE MEMORY-MAP ENVIRONMENT INFO FROM THE
  605. EXECUTION VARIABLES (╨├) TO THE DISPLAY/MODIFY VARIABLES (╠├).
  606. ╒SED WHEN USER HAS BEEN VIEWING DIFFERENT BANKS, AND NOW WANTS TO EXAMINE
  607. THE MEMORY MAP AS IT WAS WHEN WE STOPPED EXECUTION.
  608.  
  609. 64  128 128
  610. ╥┼╒ ╥┼╒ ┬┴├╦
  611. ___ ___ ___    INITVIEW        NO ARGUMENTS. ─ISPLAYS ╨├ LINE
  612.                     AND ENVIRONMENT INFO.
  613. ___ ___ ___    NOTE THAT ╨├ COMMAND HAS SAME EFFECT OF COPYING ENVIRONMENT
  614.         INFORMATION, BUT DOES NOT DISPLAY MEMORY-MAP INFO WHEN DONE.
  615. ___ ___ ___    VERIFY THAT "╔╓" COMMAND ALIAS WORKS
  616.  
  617. 4.10.2 ╙┼╘╓╔┼╫ COMMAND: SETS THE MEMORY-MAP ENVIRONMENT FOR THE
  618. DISPLAY/MODIFY COMMANDS. ─ISPLAYS NEW ENVIRONMENT INFO IF NO ERROR.
  619.  
  620. FORMAT:        SETVIEW <═EM═AP1> [, <═EM═AP2> ]
  621.  
  622. ___ ___ ___    SETVIEW <═EM═AP1>    SETS APP═EM═AP1.
  623.     ___ ___                ├128: SHOULD NOT AFFECT APP═EM═AP2
  624.  
  625.         SETVIEW <═EM═AP1>,<═EM═AP2>
  626.     ___ ___                ├128: SETS APP═EM═AP1 AND APP═EM═AP2.
  627.     ___ ___    ├128: VERIFY THAT ┬7 AND ┬6 ARE CLEARED IN APP═EM═AP2
  628.             (THIS VARIABLE MUST HAVE 0'S IN THOSE POSITIONS)
  629. ___ ___ ___    DISPLAYS NEW ENVIRONMENT INFO CORRECTLY
  630. ___ ___ ___    ERROR IF NO ARGUMENTS GIVEN
  631. ___ ___ ___    ERROR IF EITHER VALUE GREATER THAN 255.
  632. ___ ___ ___    VERIFY THAT "╙╓" COMMAND ALIAS WORKS
  633.  
  634. 4.10.3 ╓╔┼╫ COMMAND: DISPLAYS CURRENT MEMORY-MAP ENVIRONMENT INFO.
  635.  
  636. ___ ___ ___    VIEW        NO ARGUMENTS REQUIRED
  637. ___        ├64: ONLY DISPLAYS 1ST OF 2 VALUES ON EACH LINE
  638.     ___ ___    ├128: DISPLAYS BOTH VALUES ON EACH LINE
  639. ___ ___ ___    VERIFY THAT "╓╫" COMMAND ALIAS WORKS
  640.  
  641. 4.10.4 ╒╙┼╓╔┼╫ COMMAND: FORCES THE DISPLAY/MODIFY ENVIRONMENT UPON THE
  642. EXECUTION ENVIRONMENT. ─ISPLAYS NEW INFO WHEN FINISHED.
  643.  
  644. ___ ___ ___    USEVIEW        NO ARGUMENTS REQUIRED
  645. ___ ___ ___    VERIFY THAT "╒╓" COMMAND ALIAS WORKS
  646.  
  647. 4.10.5 ┬0 COMMAND: SET DISPLAY/MODIFY ENVIRONMENT VARIABLE SO THAT ALL OF
  648. BANK 0 IS VISIBLE. ─ISPLAYS NEW INFO WHEN FINISHED.
  649.  
  650. ___ ___ ___    B0        NO ARGUMENTS REQUIRED
  651.  
  652. 4.10.6 ┬1 COMMAND: SET DISPLAY/MODIFY ENVIRONMENT VARIABLE SO THAT ALL OF
  653. BANK 1 IS VISIBLE. ─ISPLAYS NEW INFO WHEN FINISHED.
  654.  
  655. ___ ___ ___    B1        NO ARGUMENTS REQUIRED
  656.  
  657. 4.10.7 ═EMORY-═AP ┼NVIRONMENT ═ANAGEMENT...
  658.  
  659. ╘┼╙╘: VIEW ENVIRONMENT SAME AS EXECUTION ENVIRONMENT WHEN SOFTWARE BREAKPOINT
  660. IS HIT OR ╥┼╙╘╧╥┼ IS PRESSED.
  661. ___ ___ ___    USE VIEW COMMAND, VALUES ON TWO LINES SHOULD BE EQUAL.
  662.  
  663.  
  664.  
  665. ┴DDITIONAL TECHNICAL INFORMATION ON GEO─EBUGGER ╓2.0 (CONTINUED)
  666.  
  667. ╘┼╙╘: THE FOLLOWING COMMANDS, MAKING SURE THAT THEY USE THE VIEW ENVIRONMENT
  668. MEMORY-MAP INFORMATION WHEN ACCESSING MEMORY.
  669.  
  670. ___ ___ ___    "┴" OPEN MODE
  671. ___ ___ ___    "═" OPEN MODE
  672. ___ ___ ___    DEPOSITING VALUES WHEN IN AN OPEN-MODE
  673. ___ ___ ___    @ AND @@ OPERATORS IN EXPRESSIONS
  674. ___ ___ ___    ─╒═╨
  675. ___ ___ ___    ─╔╙
  676. ___ ___ ___    ╬
  677. ___ ___ ___    ╫
  678. ___ ___ ___    ╨╥╔╬╘
  679. ___ ___ ___    ╞╔╠╠ / ├╧╨┘ / ─╔╞╞ / ╞╔╬─
  680.  
  681. ╘┼╙╘: THAT EXECUTION ENVIRONMENT IS USED WHEN EXECUTION IS RE-STARTED.
  682. ___ ___ ___    NEED TEST CODE FOR THIS...
  683.  
  684. ╘┼╙╘: (├128 ONLY) IN THE FOLLOWING COMMANDS, AN ADDRESS SHOWS UP HIGHLIGHTED
  685. IF THE EFFECTIVE ADDRESS (CONSIDERING ╥┴═ SHARING) IS IN BANK 0.
  686. ╚INT: TO SET ╠├ TO BANK 0, USE ┬0 COMMAND. ╘O SET ╨├ TO BANK 0, USE ┬0 FOLLOWED
  687. BY ╒╙┼╓╔┼╫ COMMAND.
  688.     ___ ___    "╥"
  689.     ___ ___    "┴" OPEN MODE
  690.     ___ ___    "═" OPEN MODE
  691.     ___ ___    ─╔╙, ╫, ╬, ETC.
  692.     ___ ___    ─╒═╨
  693.     ___ ___    ─╔╞╞
  694.     ___ ___    ╞╔╬─
  695.     ___ ___    ╚╔╙╘╧╥┘
  696.  
  697. ------------------------------------------------------------------------------
  698. ╓1.000    11/2/87        ╙ENT TO ╚╠╙, BUT NEVER MASTERED DUE TO 128 CRASHES.
  699.             ├╧═╨╠┼╘┼ ═┴╙╘┼╥ ╥┼╠┼┴╙┼ ╘┴╨┼ ═┴─┼ 11/11/87.
  700.  
  701. ╘HIS ╓┼╥╙╔╧╬ 1.0 (11/2/87) RELEASE WAS SENT TO ╚╠╙, BUT WAS NEVER MASTERED
  702. BECAUSE ┬RIAN HAD ME CHANGE THE 128 ENABLE BIT IN EACH APPLICATION'S HEADER
  703. BLOCK. ╙EE ╓1.010 FOR LIST OF KNOWN BUGS.
  704.  
  705. ------------------------------------------------------------------------------
  706. ╓1.010    11/18/87        ╙ENT TO ┌═┴╟. ─UPLICATED AS ╟EO╨ROGRAMMER ╓1.0.
  707.                 4000 SHIPPED WITHOUT ERRATA SHEET.
  708.                 ┼RRATA ITEMS POSTED TO ╤╠╔╬╦ 1/25/88
  709.  
  710. ╧NLY DIFFERENCE FROM ╓1.000: BITS SET IN HEADERS SO DOES NOT CRASH ╟┼╧╙ 128.
  711. (╔TEMS MARKED ╨┴╘├╚ WERE CORRECTED WITH ╨ATCH2.88 PROGRAM TO CREATE ╓1.1.
  712. ╔TEMS MARKED ╠┴╘┼╥ WERE NOT FIXED UNTIL ╓2.0.)
  713.  
  714. ╦NOWN BUGS IN 11.18 RELEASE, WHICH WERE CORRECTED WITH ╨ATCH2.88 PROGRAM.
  715.  
  716.     ╠INKER HAS TROUBLE CREATING ╓╠╔╥ FILES. ┬UG: VARIABLE CALLED
  717.     FILE╫RITTEN NOT SET TO ╘╥╒┼, SO ┬┴═ IS RE-READ FROM DISK INSTEAD
  718.     OF USING MORE RECENT ┬┴═ WHICH IS IN MEMORY.
  719.  
  720.     ┴SSEMBLER HAS TROUBLE WITH LOCAL LABELS AFTER PARSING A BITMAP OR
  721.     ROUTINE LONGER THAN 254 BYTES. ┬UG: TWO BRANCHES SKIP TOO FAR AND
  722.     MISS CODE WHICH RESETS A VARIABLE.
  723.  
  724.     ┴SSEMBLER HAS TROUBLE WITH BITMAPS. ┬UG: UNCOMPACTING WRONG.
  725.  
  726.     ╠INKER HAS TROUBLE WITH .RAMSECTS IN ╥ESIDENT AND ╙WAP MODULES.
  727.  
  728.  
  729. ╦NOWN BUGS IN 11.18 RELEASE, NOT CORRECTED UNTIL ╓2.0:
  730. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  731. ┴SSEMBLER (THINGS TO MENTION IN ERRATA LIST):
  732.     ╔N ASSEMBLER, IF ENCOUNTER DISK ERROR, SHOULD ATTEMPT
  733.     TO CLOSE ANY OPENED FILES SO DISK IS NOT INCONSISTENT.
  734.     ┼╥╥┴╘┴: WARN THEM, TELL THEM TO DELETE FILES AND VALIDATE DISK.
  735.  
  736.     ┴SSEMBLER HAS TROUBLE UNCOMPACTING BITMAPS OF LESS THAN 18 PIXELS HEIGHT
  737.     ┼╥╥┴╘┴: DON'T DO IT
  738.  
  739.     ╔F A ROUTINE IS LARGE ENOUGH TO COME CLOSE TO THE END OF CODE┬UFFER,
  740.     IT COULD OVERFLOW INTO THE ┼XTERNAL ╥EFERENCE ┬UFFER.
  741.     ┼╥╥┴╘┴: KEEP ROUTINES SMALLER THAN APPROX 250 BYTES (ASK TED)
  742.  
  743.     ┴SSEMBLER: DOES NOT PRINT CORRECT PAGE NUMBER IN ERROR MESSAGES
  744.     REFERRING TO BRANCH INSTRUCTIONS. ┴LSO COUNTS MACRO EXPANSION LINES,
  745.     SO MOST ERROR MESSAGES ARE OFF.
  746.     ┼╥╥┴╘┴: IF YOU GET A LOCAL LABEL ERROR, CONSIDER THAT IT MIGHT
  747.         BE ON THE PREVIOUS PAGE (OR PAGE BEFORE THAT).
  748.         ╧THER ERRORS: CONSIDER MACRO EXPANSIONS WHEN COUNTING LINE NUMS.
  749.  
  750.     ╫HEN ASSEMBLING ╠─┴ ┌╨,┘ (WHICH DOES NOT EXIST), ASSEMBLER SHOULD
  751.     SUBSTITUTE ╠─┴ ┴┬╙,┘.
  752.     ┼╥╥┴╘┴: WARN AND TELL THEM HOW TO GET AROUND IT.
  753.  
  754.     LDA #╥ELOC╓ALUE OR .BYTE ╥ELOC╓ALUE PASSES RELOCATION
  755.     POINTER TO LINKER WHICH TRASHES WORD IN CODE. ┴SSEMBLER SHOULD
  756.     GENERATE ERROR MESSAGE.
  757.     ┼╥╥┴╘┴: USE LOW BYTE OPERATOR: "[" BEFORE ANY SUCH REFERENCES.
  758.  
  759.     "*" OPERATOR ALWAYS GETS PSECT VALUE, SO DOES NOT WORK IN RAMSECT OR
  760.     ZSECT AREAS.
  761.     ┼╥╥┴╘┴: WARN THEM
  762.  
  763.     ╔N ASSEMBLER, SCREEN COLORS NOT SET CORRECTLY, SO CAN SEE ╔NSORT WORKING
  764.     BY CHANGING YOUR SCREEN COLORS.
  765.     ┼╥╥┴╘┴: TELL THEM TO CLOSE THEIR EYES DURING ASSEMBLIES.
  766.  
  767.     ─OES NOT LOOK FOR ╟EO╫RITE CORRECTLY WHEN OPENING ERROR FILE:
  768.     SHOULD LOOK FOR PERMANENT NAME STRING.
  769.     ┼╥╥┴╘┴: DO NOT RENAME YOUR GEO╫RITE.
  770.  
  771. ┴SSEMBLER: (THINGS ╔ WAS TOLD ABOUT TOO LATE TO MENTION THEM IN THE ERRATA LIST)
  772.     "+" OPERATOR DOES NOT WORK IN UNARY CASE
  773.  
  774.     ╨HASE ┼RROR: JSR $0045 DOES NOT ASSEMBLE CORRECTLY.
  775.  
  776.     ╫HEN AN UNRESOLVED SYMBOL IS USED AS THE SECOND OPERAND IN AN EXPRESSION
  777.     THAT INVOLVES A DIVISION OR A MODULUS, THE EXPRESSION WILL NOT BE PASSED
  778.     TO THE LINKER.  ╔NSTEAD, IT WILL GENERATE AN ERROR IN THE ASSEMBLER.
  779.  
  780. ┴SSEMBLER: (THINGS NOT TO MENTION IN ERRATA LIST)
  781.     ┴SSEMBLER'S BITMAP DECOMPACTION CODE DOES NOT HANDLE ┬IG├OUNT VALUES
  782.     CORRECTLY. ╬OT A BIG PROBLEM: PHOTO SCRAPS UP TO ╟┼╧╙ ╓1.3 WORK OK.
  783.  
  784.     ╔F THERE IS ANY TEXT AFTER A .ENDM, PRODUCES "╚IDDEN ┼RROR".
  785.  
  786.     ╞ILE SELECTION ─┬ BUG: COULD RUN PROGRAM WITHOUT CHOOSING A FILE.
  787.  
  788.     ┴SSEMBLER SHOULD NOT PASS ╨ASS1, ╨IC╫, AND ╨IC╚ SYMBOLS TO LINKER.
  789.  
  790. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  791. ╠INKER: (THINGS TO MENTION IN ERRATA LIST)
  792.     ╔N LINKER, IF ENCOUNTER DISK ERROR, SHOULD ATTEMPT
  793.     TO CLOSE ANY OPENED FILES SO DISK IS NOT INCONSISTENT.
  794.     ┼╥╥┴╘┴: WARN THEM, TELL THEM TO DELETE FILES AND VALIDATE DISK.
  795.  
  796.     ╠INKER: WHEN USING ╞REE┬LOCK TO DELETE HEADER BLOCKS FROM ├┬═ FILES,
  797.     DOES NOT REALIZE THAT 1.2 KERNAL DOES NOT HAVE CODE FOR '╞REE┬LOCK'.
  798.     ┼╥╥┴╘┴: WARN THEM, SUGGEST THEY UPGRADE TO ╟┼╧╙ 1.3.
  799.  
  800.     ╠INKER: DOES NOT CORRECT FOR ILLEGAL .REL FILENAMES. ─OES NOT GIVE
  801.     CORRECT ERROR FOR .REL FILE NOT FOUND. ─OES NOT STOP AFTER FIRST
  802.     10 .REL FILES IN A MODULE, PRODUCING A BUG.
  803.     ┼╥╥┴╘┴: WARN THEM NOT TO HAVE MORE THAN 10 .REL FILES PER MODULE.
  804.  
  805.     ╧N ONE-DRIVE SYSTEM, LINKER DOES NOT DISPLAY "SYM FILE" DIALOG BOX.
  806.     ┼╥╥┴╘┴: TELL THEM TO BUY A SECOND DRIVE.
  807.  
  808.     ╔N LINKER, SCREEN COLORS NOT SET CORRECTLY, SO CAN SEE ╔NSORT WORKING
  809.     BY CHANGING YOUR SCREEN COLORS.
  810.     ┼╥╥┴╘┴: TELL THEM TO CLOSE THEIR EYES DURING ASSEMBLIES.
  811.  
  812.     ─OES NOT LOOK FOR ╟EO╫RITE CORRECTLY WHEN OPENING ERROR FILE:
  813.     SHOULD LOOK FOR PERMANENT NAME STRING.
  814.     ┼╥╥┴╘┴: DO NOT RENAME YOUR GEO╫RITE.
  815.  
  816. ╠INKER: (THINGS ╔ WAS TOLD ABOUT TOO LATE TO MENTION THEM IN THE ERRATA LIST)
  817.     "+" OPERATOR DOES NOT WORK IN UNARY CASE, AND "//" OPERATOR DOES
  818.     NOT WORK.
  819.     ┼╥╥┴╘┴: ╔ DIDN'T HEAR ABOUT THIS UNTIL IT WAS TOO LATE.
  820.  
  821. ╠INKER: (THINGS NOT TO MENTION IN ERRATA LIST)
  822.     ╠INKER IS NOT CLEARING ┌╨ FLAG BIT, SO IN DEBUGGER SOME SYMBOLS
  823.     HAVE A GRAPHICS CHARACTER IN POSITION 3.
  824.  
  825.     ╠INKER DOES NOT STOP AT 99 ERRORS.
  826.  
  827.     ╞ILE SELECTION ─┬ BUG: COULD RUN PROGRAM WITHOUT CHOOSING A FILE.
  828.  
  829.     ╫HEN .LNK FILE IS WRITE-PROTECTED, LINKER DISPLAYS ─┬. ├LICK ON IGNORE
  830.     TO CONTINUE.
  831.  
  832. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  833. ─EBUGGER: (MENTION IN ERRATA LIST:)
  834.     SOME SYMBOLS SHOW UP WITH GRAPHICS CHAR IN POSITION 3. ╔S REALLY
  835.     A LINKER BUG.
  836.     ┼╥╥┴╘┴: WARN THEM, SUGGEST THEY USE * WILDCARD DURING SEARCHES.
  837.  
  838. ─EBUGGER: (DO NOT MENTION IN ERRATA LIST:)
  839.     DEBUGGER FILE-SELECT ─┬ DOES NOT DISPLAY WRITE-PROTECTED FILES
  840.  
  841.     DEBUGGER DOES NOT LOAD ╨╥╟ FILES WHICH ARE WRITE-PROTECTED CORRECTLY
  842.  
  843.     DEBUGGER IS NOT SAVING OR RESTORE DESK╘OP'S ╥╧═ VECTORS ($314-$318)
  844.     CORRECTLY. ╔S NOT PREVENTING WRITES TO $314-$315. ╬OT A BIG
  845.     PROBLEM: MY VECTORS AT $314 AND $316 ARE THE SAME ANYWAY.
  846.     ╞IXED 2/1/88 BY CORRECTING BAS┬╥╦╓EC AND BAS╔╥╤╓EC IN CONSTANTS FILE.
  847.     ╬EW CODE INSTALLED IN ═AY TO HANDLE THIS DIFFERENTLY.
  848.  
  849.     ╥┼╒ ╙UPER─EBUGGER ONLY ALLOWS 768 SYMBOLS, WHERE IT COULD HAVE 870.
  850.  
  851.     ╥┼╒ ╙UPER─EBUGGER DOES NOT GETB/PUTB FROM 1571 DRIVE CORRECTLY.
  852.  
  853.     IF YOU HOLD ╙╘╧╨ KEY DOWN WHEN DEBUGGER TURNS ON TEXT SCREEN
  854.         DURING INITIAL BOOT SEQUENCE, IT ABORTS ITS INIT CYCLE,
  855.         AND LEAVES YOU AT THE COMMAND PROMPT WITH THINGS SCREWY.
  856.  
  857. ╬OTE:    ┬OTH MONITORS IN ╟EO─EBUGGER HAVE AN UNUSED ROUTINE WHICH
  858.     TAKES 18 BYTES. ╟╧╧─ ╠╧├┴╘╔╧╬ ╞╧╥ ╨┴╘├╚ ╙╒┬╥╧╒╘╔╬┼╙!
  859. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  860. ╙AMPLE ╞ILES: (MENTION IN ERRATA LIST)
  861.     ╔N ╙AM╓LIR.LNK, SHOULD HAVE $3000 INSTEAD OF $5000 FOR VARIABLE AREA.
  862.     (CAUSES MINI-DEBUGGER TO CRASH)
  863.  
  864.     ╔N ╙AM╙EQ.LNK, SHOULD HAVE $3000 INSTEAD OF $5000 FOR VARIABLE AREA.
  865.     (─OES NOT CAUSE MINI-DEBUGGER TO CRASH BECAUSE NO VARS ARE USED.)
  866.  
  867.     ╔N ╙AM╙EQ AND ╙AM╓LIR╥ES, "╓┼╥╘╔├┴╠" UNDER ═ENU╘ABLE SHOULD BE
  868.     "╙╒┬_═┼╬╒".
  869. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  870. ═ANUAL: (MENTION IN ERRATA)
  871.     .HEADER STRUCTURES ARE CHECKED FOR 12 STATEMENTS, NOT 11.
  872.     ─EBUGGER IS NOT AS ISOLATED AS WE MAKE IT SOUND: STILL USES ╟┼╧╙
  873.         RAM EXPANSION ROUTINES.
  874.     ─EBUGGER USES $340-$3FF, NOT $350-$3FF.
  875.     ┴╨╨_╥┴═ == $400 HAS BEEN CHANGED TO ┴╨╨_╥┴═ = $400.
  876.     ╥UNTO (RT) COMMAND WILL ONLY DISPLAY ╟┼╧╙ SCREEN IF
  877.         OPTION 5 IS ENABLED (G1 COMMAND).
  878.     ╘HE SAMPLE APPLICATION CANNOT BE RE-RUN WITH GO $400.
  879.     ╨AGE 7-11 INCORRECT IN STATING THAT RUNTO WILL SHOW SCREEN.
  880.     ╨AGE 8-1 THE ┬RITISH POUND CHARACTER IS A SINGLE KEY
  881.         (NO NEED TO PRESS ├= KEY).
  882.     ╙AMPLE╓LIR DOES NOT DO ANY ERROR CHECKING WHEN TRYING TO
  883.         FIND "╙AMPLE╓LIR" ON DISK. ╔F THEY ARE NOT CAREFUL WHEN
  884.         CHANGING APPLICATION'S NAME, WILL NOT LOAD CORRECTLY.
  885.     ╫ARN PEOPLE THAT USE OF ╨ASS1 IS DANGEROUS; ╘ELL THEM TO
  886.         MAKE SURE THEY HAVE A .PSECT AFTER INCL. ZP VARS FILE.
  887.  
  888. ═ANUAL: (DO NOT MENTION)
  889.     ═AY WANT TO EXPLAIN A LITTLE BIT ABOUT INTERRUPT TIMING,
  890.         OR "WHY MOUSE─ATA CHANGES".
  891.  
  892. ------------------------------------------------------------------------------
  893. ╓1.100    2/88            ╘HIS VERSION IS ACTUALLY ╓1.010 AFTER THE
  894.                 ╨ATCH2.88 PROGRAM HAS MODIFIED THE ┴SSEMBLER
  895.                 AND ╠INKER. ╨ATCH2.88 DISTRIBUTED THROUGH
  896.                 ╤UANTUM╠INK, AND ╓1.100 ═ASTER DISK CREATED
  897.                 BY RUNNING ╨ATCH2.88 ON ╓1.010 ═ASTER DISK.
  898.                 ╘HIS ╓1.100 ═ASTER DISK DUPLICATED BY ┌═AG,
  899.                 COPIES SENT FREE OF CHARGE TO REGISTERED OWNERS
  900.                 WHO REQUESTED IT.
  901.  
  902. ------------------------------------------------------------------------------
  903. ╓2.000    ┴PRIL 1988        ├64/├128 VERSION, WITH MANY IMPROVEMENTS
  904.                 AND BUG FIXES.
  905.  
  906. ╘╚╔╙ ╔╙ ┴ ╤╒╔├╦ ╠╔╙╘; SEE "VERSION╓2" FILE FOR A SUMMARY.
  907.  
  908. ┴SSEMBLER ╔MPROVEMENTS:
  909.     RUNS UNDER ╟┼╧╙ 64 AND ╟┼╧╙ 128 (IN 80 COLUMN MODE)
  910.     ENDING ─┬ HAS ICON TO RUN LINKER
  911.     HAS .TEXT DIRECTIVE TO ASSEMBLE ASCII INTO ├┬═ TEXT CODES.
  912.  
  913. ╠INKER ╔MPROVEMENTS:
  914.     RUNS UNDER ╟┼╧╙ 64 AND ╟┼╧╙ 128 (IN 80 COLUMN MODE)
  915.     ALLOWS UP TO 20 .REL FILES PER MODULE
  916.     ENDING ─┬ HAS ICON TO RUN DEBUGGER
  917.  
  918. ─EBUGGER ╔MPROVEMENTS:
  919.  
  920. ╙AMPLE╞ILES ╔MPROVEMENTS:
  921.  
  922. ╬EW WARNINGS FOR MANUAL:
  923.     ┴SSEMBLING FILES UNDER ├128 AND LINKING THEM UNDER ├64--
  924.     DOES ╠INKER CHECK FOR TABLES WHICH ARE TOO LARGE?
  925.  
  926. ------------------------------------------------------------------------------
  927.  
  928.         ╘ECHNICAL ╧VERVIEW OF ╔MPORTANT ─IFFERENCES
  929.             ┬ETWEEN ╟EO╨ROGRAMMER ╓ERSIONS
  930.  
  931. ┴SSEMBLER:
  932.     ╙INCE CODE RECORD, XREF RECORD, RELOC RECORD, AND ERROR FILE PAGES
  933.     ARE WRITTEN OUT BLOCK BY BLOCK, WE ARE NOT CONCERNED WITH BUFFER SIZES.
  934.  
  935.     ═ACRO TEXT STORAGE SIZE:
  936.         ╓1.0        2╦
  937.         ╓2.0 (64 MODE)    3560
  938.         ╓2.0 (128 MODE)    12520
  939.  
  940.     ╙YMBOL TABLE SIZE:
  941.         ╓1.0        3017+7670 = 10687 (1068 SYMBOLS)
  942.         ╓2.0 (64 MODE)    11510 (1151 SYMBOLS)
  943.         ╓2.0 (128 MODE)    32080 (3208 SYMBOLS)
  944.  
  945.     ─OES NOT RUN IN 128 40-COLUMN MODE BECAUSE ALL ─═┴ WORK IN
  946.     BACKRAM CAUSES 40-COLUMN SCREEN TO FLICKER BADLY.
  947.  
  948. ╠INKER:
  949.     ╪REF AND ╥ELOC POINTERS ARE READ BLOCK-BY-BLOCK FROM RECORDS,
  950.     SO WE ARE NOT CONCERNED ABOUT BUFFER SIZES.
  951.  
  952.     ├ODE BUFFER SIZE (FOR ONE .REL'S CODE RECORD)
  953.         ╓1.0        6608
  954.         ╓2.0 (64 MODE)    3584
  955.         ╓2.0 (128 MODE)    7670
  956.  
  957.     ╥ESIDENT MODULE SYMBOL TABLE SIZE:
  958.         ╓1.0        10╦    = 10240 (1024 SYMBOLS)
  959.         ╓2.0 (64 MODE)    12740    (1274 SYMBOLS)
  960.         ╓2.0 (128 MODE)    32170    (3217 SYMBOLS)
  961.  
  962.     ╙WAP MODULE SYMBOL TABLE SIZE:
  963.         ╓1.0        8╦    = 8192 (819 SYMBOLS)
  964.         ╓2.0 (64 MODE)    8500 (850 SYMBOLS)
  965.         ╓2.0 (128 MODE)    17400 (1740 SYMBOLS)
  966.  
  967.     ╙EQUENTIAL ┴PPS:
  968.         ╓1.0        10╦    (YOU MIGHT THINK IS 10╦ + 8╦,
  969.                     BUT THERE IS A BUG: IS ONLY 10╦)
  970.         ╓2.0 (64 MODE)    21240
  971.         ╓2.0 (128 MODE)    32170
  972.                     (BACKRAM ONLY. ═ATT╙ORT TO USE BOTH
  973.                     BANKS (GIVING 48╦) WOULD BE A MESS.)
  974.  
  975.     ╬UMBER OF .REL FILES PER MODULE:
  976.         ╓1.0        10
  977.         ╓2.0 (64/128)    20
  978.  
  979.     ├REATING ╟EO╫RITE SYM FILES:
  980.         FOR EACH .DBG RECORD:
  981.             READ BLOCK BY BLOCK INTO FRONTRAM AND MOVE TO BACK
  982.             SORT ENTIRE IN BACK
  983.             FOR EACH SYM IN BACK
  984.                 COPY SYM TO FRONT
  985.                 WRITE TO 5╦ PAGE BUFFER (╞╟ SCREEN AREA?)
  986.                 WRITE OUT 5╦ BUFFER AS PAGE
  987.  
  988.     ─OES NOT RUN IN 128 40-COLUMN MODE BECAUSE ALL ─═┴ WORK IN
  989.     BACKRAM CAUSES 40-COLUMN SCREEN TO FLICKER BADLY.
  990.  
  991. ╟EO─EBUGGER:
  992.  
  993.  
  994.             GEO╨ROGRAMMER ╓2.0 FOR ├64 AND ├128
  995.                  ╒PGRADE ╧FFER
  996.                 ╙EPTEMBER, 1988
  997.  
  998. ─EAR GEO╨ROGRAMMER USER:
  999.  
  1000. ╧UR LATEST RELEASE OF THE GEO╨ROGRAMMER PACKAGE, GEO╨ROGRAMMER ╓2.0,
  1001. WILL SOON BE AVAILABLE. ╫E CAN OFFER YOU, AS A REGISTERED GEO╨ROGRAMMER OWNER,
  1002. THIS NEW PRODUCT FOR THE LOW PRICE OF $╪╪.╪╪. ╫E HAVE REWRITTEN MUCH OF THE
  1003. ORIGINAL SOFTWARE, TAKING YOUR SUGGESTIONS INTO ACCOUNT, AND ADDING SOME
  1004. NEW FEATURES.
  1005.  
  1006. ╧VERALL ╨RODUCT ╔MPROVEMENTS:
  1007.     - GEO╨ROGRAMMER ╓2.0 SUPPORTS THE ├OMMODORE 128 AND 128─ COMPUTERS.
  1008.     GEO┴SSEMBLER, GEO╠INKER, AND GEO─EBUGGER NOW RUN UNDER ╟┼╧╙ 128
  1009.     AT THE FASTER 2═╚┌ CLOCK RATE, USING THE 80-COLUMN SCREEN AND
  1010.     ADDITIONAL MEMORY.
  1011.  
  1012.     - GEO╨ROGRAMMER ╓2.0 IS FULLY COMPATIBLE WITH ALL VERSIONS
  1013.     OF ╟┼╧╙: ╓1.2, ╓1.3, AND ╓2.0, AND WITH THE NEW 1581 DISK DRIVE.
  1014.  
  1015.     - IN BOTH ├64 AND ├128 MODES, GEO╨ROGRAMMER ╓2.0 RUNS FASTER AND MORE
  1016.     EFFICIENTLY. ┼RROR DETECTION HAS BEEN IMPROVED, AND MORE INFORMATIVE
  1017.     ERROR MESSAGES ARE PROVIDED. ╞ILE SELECTION HAS BEEN STREAMLINED.
  1018.  
  1019.     - THE THREE SAMPLE APPLICATIONS HAVE BEEN UPGRADED TO SUPPORT THE
  1020.     ├128, AND TO ILLUSTRATE MORE ╟┼╧╙ PROGRAMMING CONCEPTS SUCH AS
  1021.     KEYBOARD SHORTCUTS.
  1022.  
  1023.     - THE ╟┼╧╙ "INCLUDE" FILES HAVE BEEN UPDATED TO REFLECT ╟┼╧╙ ╓2.0
  1024.     INFORMATION.
  1025.  
  1026.     - GEO╨ROGRAMMER ╓2.0 INCLUDES AN ADDITIONAL SAMPLE APPLICATION,
  1027.     WHICH DEMONSTRATES HOW YOU CAN DEVELOP "├┬═" APPLICATIONS
  1028.     WHICH DO NOT REQUIRE ╟┼╧╙ TO RUN.
  1029.  
  1030. ╔MPROVEMENTS IN GEO┴SSEMBLER ╓2.0:
  1031.     - GEO┴SSEMBLER ╓2.0 WILL READ GEO╫RITE SOURCE FILES FROM ALL VERSIONS
  1032.     OF GEO╫RITE, UP TO ╓2.1.
  1033.  
  1034.     - NEW .TEXT DIRECTIVE CONVERTS ASCII TEXT STRINGS DIRECTLY INTO
  1035.     ├OMMODORE SCREEN CODES.
  1036.  
  1037.                     ═AXIMUM        ═AXIMUM
  1038. ┴SPECT OF GEO┴SSEMBLER ╓2.0        IN ├64 ═ODE    IN ├128 ═ODE
  1039. ---------------------------------------    ---------------    ------------
  1040. SYMBOL DEFINITIONS:            1151 SYMBOLS    3208 SYMBOLS
  1041.  
  1042. MACRO DEFINITIONS:            100 MACROS    389 MACROS
  1043.                     OR 3560 BYTES    OR 12520 BYTES
  1044.  
  1045. CODE BYTES GENERATED PER .REL FILE:    3584 BYTES    7670 BYTES
  1046. ---------------------------------------    ---------------    ------------
  1047.  
  1048. ╔MPROVEMENTS IN GEO╠INKER ╓2.0:
  1049.     - GEO╠INKER ╓2.0 WILL ACCEPT MULTIPLE-PAGE ".LNK" COMMAND FILES,
  1050.     GENERATED WITH ANY VERSION OF GEO╫RITE.
  1051.  
  1052.     - WILL LINK UP TO 20 .REL FILES INTO A ╙┼╤ OR ├┬═ APPLICATION,
  1053.     AND UP TO 20 .REL FILES PER MODULE IN A ╓╠╔╥ APPLICATION.
  1054.  
  1055.  
  1056.  
  1057.                     ═AXIMUM        ═AXIMUM
  1058. ╙YMBOL DEFINITIONS IN GEO╠INKER ╓2.0    IN ├64 ═ODE    IN ├128 ═ODE
  1059. ---------------------------------------    ---------------    ------------
  1060. WHEN LINKING ╙┼╤ AND ├┬═ APPLICATIONS:    2124 SYMBOLS    3217 SYMBOLS
  1061.  
  1062. WHEN LINKING ╓╠╔╥ APPLICATIONS:
  1063.     RESIDENT MODULE:        1274 SYMBOLS    3217 SYMBOLS
  1064.     FOR EACH OVERLAY MODULE:    850 SYMBOLS    1740 SYMBOLS
  1065. ---------------------------------------    ---------------    ------------
  1066.  
  1067. ╔MPROVEMENTS IN GEO─EBUGGER ╓2.0:
  1068.     - NEW "HIDDEN MODE": NOW YOU CAN VIEW YOUR APPLICATION'S SCREEN
  1069.     WHILE GIVING COMMANDS TO GEO─EBUGGER.
  1070.  
  1071.     - GEO─EBUGGER ╓2.0 WILL RECOGNIZE CALLS TO INLINE ╟┼╧╙ ROUTINES
  1072.     SUCH AS I_╥ECTANGLE, ALLOWING YOU TO SAFELY TOP-STEP OVER
  1073.     AND DISASSEMBLE THESE CALLS.
  1074.  
  1075.     - NEW ┬ACK╥AM ╙UPER ─EBUGGER ALLOWS ├128 OWNERS WITHOUT A RAM EXPANSION
  1076.     UNIT TO TAKE ADVANTAGE OF THE ╙UPER ─EBUGGER'S FEATURES.
  1077.  
  1078.     - IMPROVED "CONTEXT SWITCH" IN ├128 MODE, ALLOWING SINGLE-STEP
  1079.     THROUGH CODE WHICH INVOLVES BANK SWITCHING; ALLOWS EXECUTION AT
  1080.     EITHER 1 ═╚┌ OR 2 ═╚┌ CLOCK RATE.
  1081.  
  1082.     - FULL SUPPORT FOR NON-╟┼╧╙ APPLICATIONS, INCLUDING TECHNICAL NOTES
  1083.     ON HOW TO WRITE AND INSTALL YOUR OWN INTERRUPT SERVICE ROUTINES.
  1084.  
  1085.     - STRAY INTERRUPT TRAPPING FACILITY, TO AID IN ISOLATING RARE
  1086.     CRASH CONDITIONS IN ├64 AND ├128 APPLICATIONS.
  1087.  
  1088. ╙╘┴├╔- EXPLAIN HOW THEY GO ABOUT ORDERING THE UPGRADE:
  1089.     - PRICE
  1090.     - WHERE TO SEND CHECK / MONEY ORDER / CREDIT CARD # / ETC
  1091.     - WHETHER OR NOT THEY CAN CALL THEIR ORDER IN
  1092.     - IF THEY MUST SEND THEIR ORIGINAL DISK, OR IF A RECEIPT WILL SUFFICE.
  1093.     (DO NOT ASK THEM TO TEAR THE COVER OFF THEIR MANUAL- THEY WILL
  1094.     STILL NEED THE OLD MANUAL!)
  1095.     - WHO THEY SHOULD CALL WITH QUESTIONS, OR WHERE TO WRITE FOR INFO
  1096.     ON THE UPGRADE OFFER (NOT ME!)
  1097.  
  1098.  
  1099. ├128 MODE HAS REAL TROUBLE WITH BITMAPS. ╙EE FILE14&15...
  1100.  
  1101. -------------------------------------------------------------------------------
  1102. ╦NOWN (AND ALLOWABLE) DIFFERENCES BETWEEN  GEO┴SSEMBLER (╘ED'S) AND 
  1103. GEO┴SSEMBLER (MINE) OUTPUT FILES.
  1104.  
  1105.             ╘┼─:            ┼╥╔├:
  1106.             -----------------------    -----------------------
  1107. .╥┼╠ FILE:
  1108.     ├ODE RECORD
  1109.     ILLEGAL BRANCH:    GETS GARBAGE OFFSET    OFFSET = $20
  1110.  
  1111.     ┼X╥EF RECORD:
  1112.             LESS            ╔ GENERATE MORE ┼X╥EFS
  1113.  
  1114.     ╥ELOC ╥ECORD:
  1115.  
  1116.     ╙┘═ RECORD:
  1117.     +3: ╥ELOC BIT:    SET FOR ┌╨ LABELS    ALWAYS 0
  1118.     +4: "==" BIT    SET FOR "=" EQUATES    SET FOR "==" EQUATES
  1119.  
  1120. .┼╥╥ FILE:
  1121.     MARGINS IN RULER:    OFFSET=+7: =$28        =$30
  1122. -------------------------------------------------------------------------------
  1123.  
  1124. ┬╒╟╙:
  1125.  
  1126. ─╧╬┼:
  1127.     - FIXED LINK ICON
  1128.     - CLEANED UP SOME 40/80 COLUMN PROBLEMS IN ╔NIT MODULE
  1129.     - MADE WRITE┬┴═╘O─ISK A BYTE VARIABLE
  1130.     - ADDED ╨ANIC╫RITE╬EW┬┴═╘O─ISK TO ROUTINES WHICH DELETE CHAINS
  1131.     - CLEANED UP 40/80 COLUMN MODE SWITCHING SOME MORE
  1132.     - FIXED LOTS OF MISCELLANEOUS THINGS IN MACRO EXPANSION...
  1133.     - REWROTE HOW MACRO PARAMETERS ARE PARSED FROM DEFINITION LINE,
  1134.         SO THAT CAN DETECT ALL ERROR CASES
  1135.     - REWROTE HOW MACRO ARGUMENTS ARE PARSED FROM INVOCATION LINE,
  1136.         HOW THEY ARE STORED AND SEARCHED.
  1137.         SHOULD HANDLE NULL ARGS, TOO MANY ARGS
  1138.     - FIXED HANDLING OF GLOBAL LABELS WITHIN MACROS- NOW SUBSTITUTES
  1139.         CORRECTLY, HANDLES 8 CHAR SYMBOLS
  1140.     - FIXED BUG IN NESTED MACROS WHICH HAVE GLOBAL LABELS (+1 ERROR)
  1141.     - FIXED HOW ╙EARCH╘ABLE DETERMINES LENGTHS OF THINGS IT CAN SEARCH FOR
  1142.     - RE-WROTE TEST FILE #19 (TESTS MACRO DEF AND EXP ERRORS),
  1143.         ADDED A SERIES OF ADDITIONAL TESTS, VERIFIED ALL OUTPUT,
  1144.         PLACED ON TEST DISK ┴.
  1145.     - CREATED TEST FILE #75 (TESTS ALL POSSIBLE NON-FATAL ERROR MESSAGES)
  1146.         ╔NCLUDES MOST SCENARIOS WHICH COULD GENERATE THESE ERRORS.
  1147.         VERIFIED ALL OUTPUT, PLACED ON TEST DISK ┬.
  1148.     - FIXED "RELOC" FLAG BUG: NOW SETS RELOCATION BITS IN LABELS CORRECTLY
  1149.     - REWROTE HOW LOCAL LABELS AND REFERENCES TO THEM ARE PLACED IN TABLES
  1150.         (CORRECTED BUG WHICH CLEANED UP AFTER ╩═╨ 10$ INCORRECTLY)
  1151.     - REWROTE HOW INFORMATION IS COLLECTED ABOUT AN OPERAND WHILE
  1152.         IT IS BEING EVALUATED, AND HOW THIS INFORMATION AFFECTS
  1153.         THE POSSIBLE ADDRESSING MODES. ├ORRECTED SEVERAL BUGS
  1154.         HAVING TO DO WITH EXPRESSIONS WHICH CONSIST OF SEVERAL
  1155.         DIFFERENT TYPES OF ARGUMENTS.
  1156.         - EXPRESSION WAS JUDGED AS RELOCATABLE EVEN AFTER MATH
  1157.         - BIT FOR EQUATE WAS SET BY NOGLBL/NOEQIN STATUS
  1158.         - "*" OPERAND DIDN'T SET RIGHT BIT FOR PSECT/RAMSECT
  1159.         - WAS SETTING STATUS:┬3 FOR "╒NARY╘OGETHER" CASES- WHY?
  1160.         - IMPROPER HANDLING OF ╠─┴ # AND .┬┘╘┼ OPERANDS
  1161.         - NOT GENERATING RELOC POINTERS AND EXREFS IN ALL CASES
  1162.         - NOT CATCHING ALL POSSIBLE BRANCH ERRORS (BAD LOCAL LABEL
  1163.         USAGE)
  1164.     - MADE 2 CENTRAL ROUTINES FOR GRABBING ARGS FOR .╔╞ ETC, .┬╠╧├╦,
  1165.         .╨╙┼├╘ ETC, ETC.
  1166.         - CHANGED THE WAY ╟ET┼XPRESSION LOOKS AT "MUST┼VAL"
  1167.         - REMOVED THE "COMPLEX┼XP" FLAG
  1168.     - REWROTE ERROR DETECTION IN LOCAL LABEL REFERENCES AND DEFINITIONS
  1169.         - NOW CAN FORGET MOST RECENT LOCAL LABEL REFERENCE, FOR CASES
  1170.         WHERE LINE IS BAD (DOES NOT STAMP CODE WHICH IS NOT ASSEMBLED)
  1171.     - CREATED TESTFILE: FILE76_1 TO TEST ALL EXPRESSION PARSING AND
  1172.     ERROR DETECTION; ALSO INCLUDES SOME BRANCHING TESTS
  1173.     - FIXED A LOT OF BUGS RELATED TO USING "*" IN EXPRESSIONS
  1174.         ├ORRECTED EXPRESSION EVALUATOR'S TYPE-CHECKING IN GENERAL
  1175.         CREATED NEW TEST FILE (FILE7) TO TEST THIS
  1176.     - ╧PEN╙OURCE╞ILE IN ╞ILE/FILE╥OUTINES NO LONGER DOES A ╞IND╞ILE
  1177.         BEFORE ╧PEN╥ECORD╞ILE. ╙PEED ASSEMBLY A BIT.
  1178.     - SPENT A DAY CHASING FILE14 BUG IN 128 MODE. ╬O LUCK.
  1179.  
  1180.  
  1181. ╦┼┼╨ ┴╬ ┼┘┼ ╧╒╘ ╞╧╥:
  1182.  
  1183. ╘HERE MIGHT BE A BUG WITH FILE62 (TOO MANY BACKRAM SYMBOLS)
  1184.     TRY ON STAND-ALONE, SEE IF ┬╧╠─╞┴├┼ CHARACTERS GET TRASHED
  1185.     ╔F SO, DISABLE ─═┴ ═OVE─ATA, SEE IF IT STILL HAPPENS
  1186.  
  1187. -------------------------------------------------------------------------------
  1188. ╫ARN IN MANUAL:
  1189.     ╔T MAY BE POSSIBLE FOR ASSEMBLER TO HAVE TOO MANY SYMBOLS
  1190.     THAN THE LINKER COULD READ IN FROM ONE .╥┼╠ FILE.
  1191.     ┬UT IF SOME OF THESE ARE .NOEQIN OR .NOGLBL'ED OUT, WE ARE OK.
  1192.  
  1193.     ╫ARN IN MANUAL THAT ┬╬┼ ╙TART+╙TART WILL NOT ASSEMBLE CORRECTLY,
  1194.     BECAUSE ╔ ASSUME IS SOMETHING OF THE FORM: ┬╬┼ ╙TART+2, WHICH
  1195.     IS LEGAL.
  1196.  
  1197.     ╞ILE SELECT ─┬ WILL DISPLAY ANY APPLICATION DATA FILE WHICH
  1198.     DOES NOT END IN ".REL", ".DBG", ".SYM", ".ERR", ".LNK": THUS
  1199.     IS FASTER THAN BEFORE. ╨ROBLEM: WILL DISPLAY GEO╞ILE AND GEO╨AINT ETC.
  1200.     DOCUMENTS.
  1201.  
  1202. -------------------------------------------------------------------------------
  1203. ╞╒╘╒╥┼:
  1204.  
  1205. ┴DD TO TEST LIST
  1206.     PAGE TOO BIG (4096)
  1207.     ECHO TOO MANY PAGES
  1208.     TOO MANY ERROR PAGES
  1209.  
  1210. MINOR BUGS FOUND IN FILE75:
  1211.     ╬OT RECOGNIZING "LINE TOO LONG" CORRECTLY
  1212.     ├OULD NOT GET IT TO PRINT "EXPRESSION TOO COMPLEX"
  1213.     DOES NOT DETECT .RAMSECT AND .INCLUDE IN MACRO DEFINITION
  1214.     SEE ERROR #61- ╔ DID NOT FORCE IT CORRECTLY
  1215.  
  1216. SEE FILE3: ASSEMBLER IS NOT FLAGGING ERROR FOR ".WORD "ERIC" "
  1217.  
  1218. ├128 MODE: INTERMITTENT BUG WHEN TRYING TO ASSEMBLE FILE14 (BIG BITMAP)
  1219. OFF OF DRIVE ┴, ONTO ╥┴═ ─╔╙╦. ╙OMETIMES GET "DISK NAME MISMATCH" ERROR.
  1220.  
  1221. ├128:    WHY DID 3208 NOT OVERFLOW SYMBOL TABLE?
  1222.     TABLE HOLDS 3208- ╔ SENT 3208 PLUS 3 ALREADY THERE!
  1223.  
  1224. ├REATE A FILE78 WHICH IS A COPY OF FILE75, BUT WHICH TESTS .IF ╨ASS1 STUFF.
  1225. ╔ DID THIS ON 10/1/88, AND HIT A WEIRD PHASE ERROR AT ╟LOBAL╠ABEL:. ╔ DON'T
  1226. THINK THIS IS A BIG PROBLEM.
  1227.  
  1228. ╙LIGHT PROBLEM IN EXPRESSION EVALUATION: PARSES JMP (LABEL) AS RELOCATABLE
  1229. WITH MATH, SINCE IT HITS THE ENDING PARANTHESES. ╬EED TO EDUCATE GET┼XPRESSION
  1230. A LITTLE MORE SO THIS DOES NOT HAPPEN. ╘HIS IS NOT A PROBLEM WITH THE (,X) AND
  1231. (),Y ADDRESSING MODES, BECAUSE THEY MUST HAVE RESOLVABLE ┌╨ EXPRESSIONS,
  1232. AND SO THEY NEVER GENERATE EXTERNAL REFERENCES.
  1233.  
  1234. -------------------------------------------------------------------------------
  1235. ─╔╙╘┴╬╘ ╞╒╘╒╥┼
  1236.  
  1237. ═OVE LOCAL LABEL PARSING OUT OF EXPRESSION EVALUATOR:
  1238. RIGHT NOW THE ERROR DETECTION IS VERY CONFUSED BY CASES SUCH AS
  1239.     LDA    10$+4
  1240.     LDA    4+10$+6666666666666
  1241.     LDA    10$+20$+30$        ;THREE REFERENCES ADDED TO LIST,
  1242.                     ;ONLY LAST ONE DELETED...
  1243.  
  1244. ═INOR PROBLEM:
  1245.     ┴ LINE SUCH AS
  1246.         .BYTE    1,CRAP,2
  1247.     WILL STILL GENERATE 3 BYTES OF CODE: WOULD BE NICE TO COMPLETELY
  1248.     REVERSE THE EFFECTS (CODE, ╠├ INCS, EXREFS AND RELOCS GENERATED, ETC)
  1249.     OF A CODE LINE WHEN AN ERROR IS DETECTED. ╧THERWISE THERE IS NO EASY WAY
  1250.     TO HANDLE THIS CASE.
  1251.  
  1252.     ╥ELATED PROBLEM:
  1253.         IN CASES WHERE AN ERROR IS DETECTED IN PASS 2 AND ╬╧╘ PASS 1,
  1254.     WE HAVE TO MAKE SURE THE SAME AMOUNT OF CODE IS GENERATED IN BOTH
  1255.     PASSES, SO THAT NO PHASE ERRORS SHOW UP. "╘OO MANY LOCAL LABEL
  1256.     REFERENCES" IS A GOOD EXAMPLE OF THIS. ╙EE BEGINNING OF ╨ARSE╔NST
  1257.     FOR HOW ╔ HANDLED THIS.
  1258.  
  1259.  
  1260. ├128 MODE HAS REAL TROUBLE WITH BITMAPS. ╙EE FILE14&15...
  1261.  
  1262. -------------------------------------------------------------------------------
  1263. ╦NOWN (AND ALLOWABLE) DIFFERENCES BETWEEN  GEO┴SSEMBLER (╘ED'S) AND 
  1264. GEO┴SSEMBLER (MINE) OUTPUT FILES.
  1265.  
  1266.             ╘┼─:            ┼╥╔├:
  1267.             -----------------------    -----------------------
  1268. .╥┼╠ FILE:
  1269.     ├ODE RECORD
  1270.     ILLEGAL BRANCH:    GETS GARBAGE OFFSET    OFFSET = $20
  1271.  
  1272.     ┼X╥EF RECORD:
  1273.             LESS            ╔ GENERATE MORE ┼X╥EFS
  1274.  
  1275.     ╥ELOC ╥ECORD:
  1276.  
  1277.     ╙┘═ RECORD:
  1278.     +3: ╥ELOC BIT:    SET FOR ┌╨ LABELS    ALWAYS 0
  1279.     +4: "==" BIT    SET FOR "=" EQUATES    SET FOR "==" EQUATES
  1280.  
  1281. .┼╥╥ FILE:
  1282.     MARGINS IN RULER:    OFFSET=+7: =$28        =$30
  1283. -------------------------------------------------------------------------------
  1284.  
  1285. ┬╒╟╙:
  1286.  
  1287. ─╧╬┼:
  1288.     - FIXED LINK ICON
  1289.     - CLEANED UP SOME 40/80 COLUMN PROBLEMS IN ╔NIT MODULE
  1290.     - MADE WRITE┬┴═╘O─ISK A BYTE VARIABLE
  1291.     - ADDED ╨ANIC╫RITE╬EW┬┴═╘O─ISK TO ROUTINES WHICH DELETE CHAINS
  1292.     - CLEANED UP 40/80 COLUMN MODE SWITCHING SOME MORE
  1293.     - FIXED LOTS OF MISCELLANEOUS THINGS IN MACRO EXPANSION...
  1294.     - REWROTE HOW MACRO PARAMETERS ARE PARSED FROM DEFINITION LINE,
  1295.         SO THAT CAN DETECT ALL ERROR CASES
  1296.     - REWROTE HOW MACRO ARGUMENTS ARE PARSED FROM INVOCATION LINE,
  1297.         HOW THEY ARE STORED AND SEARCHED.
  1298.         SHOULD HANDLE NULL ARGS, TOO MANY ARGS
  1299.     - FIXED HANDLING OF GLOBAL LABELS WITHIN MACROS- NOW SUBSTITUTES
  1300.         CORRECTLY, HANDLES 8 CHAR SYMBOLS
  1301.     - FIXED BUG IN NESTED MACROS WHICH HAVE GLOBAL LABELS (+1 ERROR)
  1302.     - FIXED HOW ╙EARCH╘ABLE DETERMINES LENGTHS OF THINGS IT CAN SEARCH FOR
  1303.     - RE-WROTE TEST FILE #19 (TESTS MACRO DEF AND EXP ERRORS),
  1304.         ADDED A SERIES OF ADDITIONAL TESTS, VERIFIED ALL OUTPUT,
  1305.         PLACED ON TEST DISK ┴.
  1306.     - CREATED TEST FILE #75 (TESTS ALL POSSIBLE NON-FATAL ERROR MESSAGES)
  1307.         ╔NCLUDES MOST SCENARIOS WHICH COULD GENERATE THESE ERRORS.
  1308.         VERIFIED ALL OUTPUT, PLACED ON TEST DISK ┬.
  1309.     - FIXED "RELOC" FLAG BUG: NOW SETS RELOCATION BITS IN LABELS CORRECTLY
  1310.     - REWROTE HOW LOCAL LABELS AND REFERENCES TO THEM ARE PLACED IN TABLES
  1311.         (CORRECTED BUG WHICH CLEANED UP AFTER ╩═╨ 10$ INCORRECTLY)
  1312.     - REWROTE HOW INFORMATION IS COLLECTED ABOUT AN OPERAND WHILE
  1313.         IT IS BEING EVALUATED, AND HOW THIS INFORMATION AFFECTS
  1314.         THE POSSIBLE ADDRESSING MODES. ├ORRECTED SEVERAL BUGS
  1315.         HAVING TO DO WITH EXPRESSIONS WHICH CONSIST OF SEVERAL
  1316.         DIFFERENT TYPES OF ARGUMENTS.
  1317.         - EXPRESSION WAS JUDGED AS RELOCATABLE EVEN AFTER MATH
  1318.         - BIT FOR EQUATE WAS SET BY NOGLBL/NOEQIN STATUS
  1319.         - "*" OPERAND DIDN'T SET RIGHT BIT FOR PSECT/RAMSECT
  1320.         - WAS SETTING STATUS:┬3 FOR "╒NARY╘OGETHER" CASES- WHY?
  1321.         - IMPROPER HANDLING OF ╠─┴ # AND .┬┘╘┼ OPERANDS
  1322.         - NOT GENERATING RELOC POINTERS AND EXREFS IN ALL CASES
  1323.         - NOT CATCHING ALL POSSIBLE BRANCH ERRORS (BAD LOCAL LABEL
  1324.         USAGE)
  1325.     - MADE 2 CENTRAL ROUTINES FOR GRABBING ARGS FOR .╔╞ ETC, .┬╠╧├╦,
  1326.         .╨╙┼├╘ ETC, ETC.
  1327.         - CHANGED THE WAY ╟ET┼XPRESSION LOOKS AT "MUST┼VAL"
  1328.         - REMOVED THE "COMPLEX┼XP" FLAG
  1329.     - REWROTE ERROR DETECTION IN LOCAL LABEL REFERENCES AND DEFINITIONS
  1330.         - NOW CAN FORGET MOST RECENT LOCAL LABEL REFERENCE, FOR CASES
  1331.         WHERE LINE IS BAD (DOES NOT STAMP CODE WHICH IS NOT ASSEMBLED)
  1332.     - CREATED TESTFILE: FILE76_1 TO TEST ALL EXPRESSION PARSING AND
  1333.     ERROR DETECTION; ALSO INCLUDES SOME BRANCHING TESTS
  1334.     - FIXED A LOT OF BUGS RELATED TO USING "*" IN EXPRESSIONS
  1335.         ├ORRECTED EXPRESSION EVALUATOR'S TYPE-CHECKING IN GENERAL
  1336.         CREATED NEW TEST FILE (FILE7) TO TEST THIS
  1337.     - ╧PEN╙OURCE╞ILE IN ╞ILE/FILE╥OUTINES NO LONGER DOES A ╞IND╞ILE
  1338.         BEFORE ╧PEN╥ECORD╞ILE. ╙PEED ASSEMBLY A BIT.
  1339.     - SPENT A DAY CHASING FILE14 BUG IN 128 MODE. ╬O LUCK.
  1340.  
  1341.  
  1342. ╦┼┼╨ ┴╬ ┼┘┼ ╧╒╘ ╞╧╥:
  1343.  
  1344. ╘HERE MIGHT BE A BUG WITH FILE62 (TOO MANY BACKRAM SYMBOLS)
  1345.     TRY ON STAND-ALONE, SEE IF ┬╧╠─╞┴├┼ CHARACTERS GET TRASHED
  1346.     ╔F SO, DISABLE ─═┴ ═OVE─ATA, SEE IF IT STILL HAPPENS
  1347.  
  1348. -------------------------------------------------------------------------------
  1349. ╫ARN IN MANUAL:
  1350.     ╔T MAY BE POSSIBLE FOR ASSEMBLER TO HAVE TOO MANY SYMBOLS
  1351.     THAN THE LINKER COULD READ IN FROM ONE .╥┼╠ FILE.
  1352.     ┬UT IF SOME OF THESE ARE .NOEQIN OR .NOGLBL'ED OUT, WE ARE OK.
  1353.  
  1354.     ╫ARN IN MANUAL THAT ┬╬┼ ╙TART+╙TART WILL NOT ASSEMBLE CORRECTLY,
  1355.     BECAUSE ╔ ASSUME IS SOMETHING OF THE FORM: ┬╬┼ ╙TART+2, WHICH
  1356.     IS LEGAL.
  1357.  
  1358.     ╞ILE SELECT ─┬ WILL DISPLAY ANY APPLICATION DATA FILE WHICH
  1359.     DOES NOT END IN ".REL", ".DBG", ".SYM", ".ERR", ".LNK": THUS
  1360.     IS FASTER THAN BEFORE. ╨ROBLEM: WILL DISPLAY GEO╞ILE AND GEO╨AINT ETC.
  1361.     DOCUMENTS.
  1362.  
  1363. -------------------------------------------------------------------------------
  1364. ╞╒╘╒╥┼:
  1365.  
  1366. ┴DD TO TEST LIST
  1367.     PAGE TOO BIG (4096)
  1368.     ECHO TOO MANY PAGES
  1369.     TOO MANY ERROR PAGES
  1370.  
  1371. MINOR BUGS FOUND IN FILE75:
  1372.     ╬OT RECOGNIZING "LINE TOO LONG" CORRECTLY
  1373.     ├OULD NOT GET IT TO PRINT "EXPRESSION TOO COMPLEX"
  1374.     DOES NOT DETECT .RAMSECT AND .INCLUDE IN MACRO DEFINITION
  1375.     SEE ERROR #61- ╔ DID NOT FORCE IT CORRECTLY
  1376.  
  1377. SEE FILE3: ASSEMBLER IS NOT FLAGGING ERROR FOR ".WORD "ERIC" "
  1378.  
  1379. ├128 MODE: INTERMITTENT BUG WHEN TRYING TO ASSEMBLE FILE14 (BIG BITMAP)
  1380. OFF OF DRIVE ┴, ONTO ╥┴═ ─╔╙╦. ╙OMETIMES GET "DISK NAME MISMATCH" ERROR.
  1381.  
  1382. ├128:    WHY DID 3208 NOT OVERFLOW SYMBOL TABLE?
  1383.     TABLE HOLDS 3208- ╔ SENT 3208 PLUS 3 ALREADY THERE!
  1384.  
  1385. ├REATE A FILE78 WHICH IS A COPY OF FILE75, BUT WHICH TESTS .IF ╨ASS1 STUFF.
  1386. ╔ DID THIS ON 10/1/88, AND HIT A WEIRD PHASE ERROR AT ╟LOBAL╠ABEL:. ╔ DON'T
  1387. THINK THIS IS A BIG PROBLEM.
  1388.  
  1389. ╙LIGHT PROBLEM IN EXPRESSION EVALUATION: PARSES JMP (LABEL) AS RELOCATABLE
  1390. WITH MATH, SINCE IT HITS THE ENDING PARANTHESES. ╬EED TO EDUCATE GET┼XPRESSION
  1391. A LITTLE MORE SO THIS DOES NOT HAPPEN. ╘HIS IS NOT A PROBLEM WITH THE (,X) AND
  1392. (),Y ADDRESSING MODES, BECAUSE THEY MUST HAVE RESOLVABLE ┌╨ EXPRESSIONS,
  1393. AND SO THEY NEVER GENERATE EXTERNAL REFERENCES.
  1394.  
  1395. -------------------------------------------------------------------------------
  1396. ─╔╙╘┴╬╘ ╞╒╘╒╥┼
  1397.  
  1398. ═OVE LOCAL LABEL PARSING OUT OF EXPRESSION EVALUATOR:
  1399. RIGHT NOW THE ERROR DETECTION IS VERY CONFUSED BY CASES SUCH AS
  1400.     LDA    10$+4
  1401.     LDA    4+10$+6666666666666
  1402.     LDA    10$+20$+30$        ;THREE REFERENCES ADDED TO LIST,
  1403.                     ;ONLY LAST ONE DELETED...
  1404.  
  1405. ═INOR PROBLEM:
  1406.     ┴ LINE SUCH AS
  1407.         .BYTE    1,CRAP,2
  1408.     WILL STILL GENERATE 3 BYTES OF CODE: WOULD BE NICE TO COMPLETELY
  1409.     REVERSE THE EFFECTS (CODE, ╠├ INCS, EXREFS AND RELOCS GENERATED, ETC)
  1410.     OF A CODE LINE WHEN AN ERROR IS DETECTED. ╧THERWISE THERE IS NO EASY WAY
  1411.     TO HANDLE THIS CASE.
  1412.  
  1413.     ╥ELATED PROBLEM:
  1414.         IN CASES WHERE AN ERROR IS DETECTED IN PASS 2 AND ╬╧╘ PASS 1,
  1415.     WE HAVE TO MAKE SURE THE SAME AMOUNT OF CODE IS GENERATED IN BOTH
  1416.     PASSES, SO THAT NO PHASE ERRORS SHOW UP. "╘OO MANY LOCAL LABEL
  1417.     REFERENCES" IS A GOOD EXAMPLE OF THIS. ╙EE BEGINNING OF ╨ARSE╔NST
  1418.     FOR HOW ╔ HANDLED THIS.
  1419.  
  1420.  
  1421. LINKER DOES NOT WARN ABOUT WORD STAMPED INTO BYTE LOCATION:
  1422.     .BYTE ┼XTERN
  1423.     LDA #┼XTERN        ;SEE FILE7
  1424.  
  1425. ╟EO╠INKER ╘╚╔╬╟╙ ╘╧ ─╧:
  1426.     - CORRECTED BAD ═OVE─ATA IN ╠INK╚EADER WHICH WAS TRASHING SYMBOL
  1427.         TABLE, CAUSING BAD .╙┘═ FILE TO BE CREATED
  1428.         (TO AVOID, DO NOT CREATE CUSTOMIZED HEADER BLOCK)
  1429.     - CORRECTED BUG IN MODULE SWAPPING, WHICH CAUSED PROBLEMS WHEN
  1430.         WRITING .╙┘═ FILE TO OTHER DISK
  1431.         (TO AVOID, SET OUTPUT DRIVE = APPLICATION DRIVE)
  1432.     - NOW RUNS GEO─EBUGGER PROPERLY (HAD BAD PERM NAME)
  1433.     - TESTED .CBM LINK WITH MULTIPLE .REL FILES: WORKS OK
  1434.     - REMOVED WARNINGS ABOUT ═OVE┬─ATA OVERLAPPING SYMBOL TABLE
  1435.     - FIXED: "SYMBOL DEFINED MORE THAN ONCE"- IS PRINTING FILENAME
  1436.         INSTEAD OF SYM
  1437.     - FIXED: IF SYM ERROR IN HEADER FILE, ERROR MESSAGE FUNNY
  1438.     - FIXED: IF SYM TABLE EMPTY, SEARCHES ALL OF MEMORY FOR SYMBOL
  1439.     - FIXED: PRINTS CORRECT ERROR WHEN HEADER BLOCK WRONG SIZE
  1440.     - FIXED: DOES NOT DELETE OLD FILES WHEN OUTPUT DRIVE NOT INPUT DRIVE
  1441.     - FIXED: SEQ, CBM, AND VLIR .╧┬╩ FILES SHOULD NOW HAVE CORRECT SIZE.
  1442.     - RE-INSTALLED RESIDENT CODE MUNGING
  1443.     - CLEANED UP SOME 40/80 COLUMN PROBLEMS IN ╔NIT MODULE
  1444.  
  1445. ┴╞╘┼╥ ┬┼╘┴ 1:
  1446.     ADD FILES TO TEST LIST
  1447.  
  1448. ╞UTURE:
  1449.     ╔ AM NOT SO SURE THE ╚EX/DECIMAL/OCTAL ETC PARSERS WORK.
  1450.         SAME PROBLEMS IN ASSEMBLER?
  1451.     ╔ MAY HAVE SCREWED UP HOW IT EVALUATES EXPRESSIONS IN .═╧─ STATEMENTS
  1452.         ╙EE ╥ESIDENT/GET╠INE, AND A VARIABLE "OPERAND" WHICH DETERMINES
  1453.         WHERE A WORD BOUNDARY IS.
  1454.  
  1455. ─╧╬┼:
  1456.     - REORDERED MODULES
  1457.     - MADE SURE THAT PROGRAM HAS A TOP-LEVEL IN RESIDENT,
  1458.     AND THAT EVERYTHING IS A CALL FROM IT
  1459.     - UPDATED HOW SWAP AND DRIVE ROUTINES WORK
  1460.     - COMBINED ╞ILE, ─RIVE, AND ├OMPACT MODULES
  1461.     - UPDATED ╟ET╞ILENAME, WITH CHANGES WE MADE TO GEO┴SSEMBLER
  1462.     - COPIED NEW ╘O╘EXT AND ╘O┬ITMAP ROUTINES OVER FROM ASSEMBLER
  1463.     - MOVED SOME INIT CODE TO ╞ILE MODULE
  1464.     - MOVED ERROR FILE CREATION TO ╞ILE MODULE
  1465.     - REMOVED ALOT OF UNUSED CODE IN EXPRESSION EVALUATOR,
  1466.         REMOVED BUGS
  1467.     - CREATED ╟ET╠INE┴ND╫ORD
  1468.     - ╧PEN┴NOTHER╞ILE -> ╧PEN╥EL╞ILE
  1469.     - REWROTE HOW ╠╬╦ FILE IS PARSED
  1470.         MOVED MOST OF IT TO ╞ILE
  1471.         REWROTE MID-LEVEL AND TOP-LEVEL PARSING ROUTINES
  1472.         DELETED SOME ERROR MESSAGES,
  1473.         ADDED SOME
  1474.     - UPDATED SCREEN HANDLING
  1475.     - REWROTE HOW SYMBOLS ARE RELOCATED
  1476.     - REWROTE HOW RELOC POINTERS ARE READ IN AND USED
  1477.     - REWROTE HOW EXPRESSIONS ARE READ IN AND USED
  1478.     - REWROTE ROUTINE TO SEARCH SYMBOL TABLES- REMOVED LOT OF EXCESS CODE,
  1479.         POSSIBLY SOME BUGS. SEARCHES 2-3 TIMES FASTER NOW.
  1480.     - SIMPLIFIED HOW SYMBOLS ARE COMPACTED, FIXED, SORTED, AND WRITTEN
  1481.     OUT TO DISK
  1482.     - PLACED ╥ES AND ╙WAP TABLES NEXT TO EACH OTHER, COMMENTED OUT ALL
  1483.         BIG╙EQ CODE
  1484.     - ╥┼╫╥╧╘┼ HOW .╧┬╩ FILE IS CREATED AND WRITTEN TO, INCLUDING
  1485.         CUSTOM HEADER BLOCK / ├┬═ FILE CONSIDERATIONS
  1486.     - REWROTE HOW HEADER BLOCK .╥┼╠ FILE IS LINKED TO REST OF APPLICATION-
  1487.     HEADER .╥┼╠ FILE CAN NOW HAVE ITS OWN SYMBOL DEFS, WHICH GO TO SWAP
  1488.     TABLE.
  1489.     - ╥┼╫╥╧╘┼ HOW LINKER OPENS GEO╫RITE OR GEO─EBUGGER (CODE FROM ASSEM)
  1490.     - BROUGHT NEW ╘O╘EXT AND ╘O┬ITMAP CODE OVER FROM GEO┴SSEM
  1491.     - REWROTE ERROR PRINTING ROUTINES
  1492.  
  1493.     - ╥┼─╒├┼─ ╘╧╘┴╠ ╙╔┌┼ ╧╞ ┴╨╨ ╞╥╧═ 24╦ TO 20╦
  1494.     - ╥┼─╒├┼─ ╙╔┌┼ ╧╞ ╥┼╙╔─┼╬╘ ┬┘ 2589 ┬┘╘┼╙!
  1495.     - DID COMPLETE WALK-THROUGH OF NEW CODE, MAKING SURE THAT DISK
  1496.     AND USER ERRORS CAUSED THE RIGHT THING TO HAPPEN
  1497.     - FINAL WORK ON FILE CREATION/DELETION STUFF
  1498.     - RE-INSTALLED ╙╘╧╨ KEY CHECKS
  1499.     - ADDED ├HECK─ISK┼RROR CALLS THROUGHOUT PROGRAM
  1500.     - ADDED CODE TO SET FILENAME POINTER IN CASE ERROR OCCURS
  1501.     - ADDED NEW ERROR DIALOG BOX: PRINTS FILENAME, ERROR, ALLOWS ├┴╬├┼╠
  1502.     - ADDED CODE TO DELETE OUTPUT FILES CORRECTLY ON ERROR,
  1503.         DISPLAY SECOND ─┬ IF SECOND DISK ERROR
  1504.     - NUKED ERROR MESSAGE POINTER TABLE TO SAVE BYTES IN RESIDENT
  1505.     - ╥┼╫╥╧╘┼ HOW WE CREATE THE .┼╥╥ FILE
  1506.         MADE SURE RULER AND VERSION # ARE ╧╦
  1507.     - ╥┼╫╥╧╘┼ HOW WE CREATE THE .─┬╟ FILE
  1508.     - MODIFIED HOW WE CREATE THE .╙┘═ FILE- DOES THIS NEED ANY WORK?
  1509.  
  1510.  
  1511. DON'T FORGET TO TEST INSTALLATION WITH 1571 DRIVE!
  1512.  
  1513. ╘HINK ABOUT 2 DIFFERENT PHYSICAL DRIVES ON NON-╥┼╒ SYSTEM: WILL ╟┼╧╙
  1514. TELL ME THAT DRIVER DOES NOT EXIST, OR WILL ╔ CRASH?
  1515.  
  1516. ┬UG: 1571 AS ┴, 1581 AS ┬, RUN DEBUGGER ON ┬, TRY TO SELECT DRIVE ┴,
  1517. AND SINCE THERE IS NO ╥┼╒, ╟┼╧╙ ╙ET─EVICE DOES NOT WORK. ─OES IT RETURN
  1518. ERROR CONDITION TO DEBUGGER? OR JUST CRASH...
  1519.  
  1520. ┬UGS IN ╘UESDAY (6/21) 12╨═ VERSION:
  1521.     STOP COMMAND IN HIDDEN MODE DOES NOT DO THE RIGHT THING!
  1522.     CHANGE NOTES IN GET INFO BOX
  1523.  
  1524. ┬UGS IN THU (6/16) 4╨═ VERSION:
  1525.     FIXED: ╙┼╘╒ U.E2  COMMAND DOES NOT CLEAR HIGH BITS!
  1526.     FIXED: ╙┘═ R0╠  FINDS R0 ALSO!
  1527.     FIXED: GETN COMMAND IS READING DISK INFO FROM BANK 0!
  1528.     FIXED: IN RBOOT, QUIT, AND EXIT COMMANDS, PRESSING ╞8 SCREWS UP LINE
  1529.     FIXED: STOP COMMAND DOES NOT CANCEL HIDDEN MODE ANYMORE
  1530.     FORGET: @# OPERATOR DOES NOT TAKE IN-LINES INTO ACCOUNT
  1531.     INVESTIGATED: WE CANNOT PROTECT ALL OF ╔/╧ SPACE
  1532.     WARN IN MANUAL: IN ┬ACK╥AM╙UPER (AND HAVE ╥┼╒), SHOW ╟┼╧╙ SCREEN WHEN
  1533.         TOP-STEPPING THROUGH ═OVE─ATA, BECAUSE IT USES ─═┴ TO MOVE
  1534.         SMALL THINGS. (╘HEY COULD DISABLE ═OVE─ATA IN CONFIGURE TO BE
  1535.         SURE. ┴LSO WARN THAT AN ╥┬╧╧╘ BRINGS BACK OLD ═OVE─ATA/╥┬╧╧╘
  1536.         FLAG VALUES.)
  1537.  
  1538. ┬UGS IN EARLIER VERSIONS:
  1539.     FIXED: SETU SS,0 PLACES CURSOR WRONG
  1540.     FIXED: PRINT @ SIGN WHERE ╨├ SHOULD GO
  1541.     FIXED: NOT DELETING ╙┬╨'S CORRECTLY
  1542.     FIXED: TRASHES ╪ (AND OPEN MODES) WHEN SETTING ╙┬╨S TO ╥┴═
  1543.     FIXED: DOES NOT LOAD ├┬═S WITH HEADER CORRECTLY
  1544.     FIXED: $03╞├-$03╞╞ STILL TREATED DIFFERENTLY
  1545.     FIXED: IN 64 MODE, IS NOT TRACKING BANK INFO WITH ╙┬╨S CORRECTLY
  1546.     FINISH NOW WORKS WITHIN INLINE CALL
  1547.     CLEANED UP ╞ETCH╔NST USAGE
  1548.     N COMMAND WILL NOW SET FINAL ╠├ CORRECTLY IF LAST LINE IS INLINE ╩╙╥
  1549.     FIXED ╞IND╬EXT: ═ MODE SHOULD NOW IGNORE INLINE STUFF
  1550.         CHECK UP AND DOWN IN BOTH MODES, CHECK REG, FLAG, OPT, ETC
  1551.     CORRECTED "╫": NOW USES ╞IND╬EXT, SO SHOULD WORK.
  1552.     FIXED ╩╙╥ COMMAND
  1553.         TEST: BOOT APP AND TRY ╩╙╥ $400: SHOULD COME BACK TO
  1554.         US BEFORE GOING OFF TO ╟┼╧╙ MAINLOOP
  1555.     FIXED SKIP COMMAND: TAKES BANK INTO ACCOUNT
  1556.     FIXED DIFF AND COPY COMMANDS
  1557.     FIXED ╞8 IN MINI DEBUGGER RIGHT-SIDE PROMPT BUG
  1558.     FIXED LOAD ├┬═ APP WITH HEADER BUG
  1559.     FIXED $3╞├-$3╞╞ BUG
  1560.     FIXED BANK INFO COMPARISONS
  1561.     ADDED ╔ AND ╥ PRINTING TO OPEN COMMAND
  1562.     PRINTS ERROR IF TRY TO SET ┬╨ IN ╥╧═ OR ╔╧
  1563.     FIXED ╔╧ AREA DECODE BUG ($─022)
  1564.     CLEANED UP INIT CODE: ZEROED ALL VARS AT START, SAVED LOTS OF BYTES
  1565.     FIXED ╙TUFF┬╥╦┴T╠╙┴ BUG WHICH ╔ CREATED YESTERDAY!
  1566.  
  1567. ------------------------------------------------------------------------------
  1568. ═AJOR CODE SECTIONS:
  1569.  
  1570. ------------------------------------------------------------------------------
  1571. ╞OR ╘EST ╠IST:
  1572.  
  1573. GOOD TEST FOR ├64 VERSION: CHECK TO SEE IF $╞╞00 AND $─506 ARE CHANGING
  1574. SPECIAL ASSIGNMENTS FOR ┬ETA ╘ESTERS?
  1575.     SINGLE STEPPING THROUGH DIFFERENT BANKS
  1576.     MEMORY ACCESS TESTS
  1577.     SYMBOL TABLE USE
  1578.     MACRO DEFINITION USE
  1579.  
  1580. ------------------------------------------------------------------------------
  1581. ╬EW ├ONCERNS:
  1582.  
  1583. WHAT IF IN 64 MODE THEY SWAP ╥╧═ IN AND USE DEBUGGER ╟ET┬LOCK?
  1584.  
  1585. ------------------------------------------------------------------------------
  1586. ╘HINGS ╘O ╥ESEARCH:
  1587.  
  1588. ╥┼╙┼╘ EXECUTES ╥╧═╙, BUT DO THEY CHECK ╥┴═?
  1589. ┬ANK 0 ╨AGE 3 ISSUES:
  1590.     ╔ FILL FIRST WITH $00 AND THEN WITH $ED, AND DESK╘OP AND ICON EDITOR
  1591.     HAD NO PROBLEMS RUNNING.
  1592. CANNOT LOAD OTHER DESK ACCESSORIES?
  1593. EASY WAY TO LOAD DRIVERS?
  1594. ???CONVERT TABS FOUND IN MACRO DEFS
  1595. ???─╔╥ SAVE ╨├?
  1596. ╔NIT╞OR╔╧ TRASHES $314 AREA VECTORS- ┘┼╙: $314 AND $318 (╔╥╤ AND ╬═╔)
  1597.  
  1598. ------------------------------------------------------------------------------
  1599. ╬OT CONCERNED WITH:
  1600.  
  1601. DEBUGGER ASSUMES ALL GEO╫RITE VERSIONS ABOVE 1.1 ARE THE SAME.
  1602. 64 MODE ON ├128: CAN SET FOR 2═╚┌?
  1603.  
  1604. ╥┼╙╘╧╥┼ KEY BOUNCES! ╟ENERATES TWO ╬═╔ SIGNALS, SPACED ABOUT 200 USEC APART
  1605.  
  1606. ------------------------------------------------------------------------------
  1607. ╠OW ╨RIORITY:
  1608.  
  1609. ╒SER COMPLAINT: HIS PROGRAM RAN UNDER ─╟┬, CRASHED UNDER ╟┼╧╙. ╚E HAD FORGOTTEN
  1610. TO PUT A DUMMY ICON UP. ╨OSSIBLY RELATED TO DEBUGGER CLEARING MEMORY.
  1611.  
  1612. ╙HOULD NOT ALLOW USER TO LOAD APPLICATION WHICH TRASHES ═INI─EBUGGER IN MEMORY
  1613. OR WHICH WOULD TRASH ╟┼╧╙
  1614.  
  1615. ADD OPTION TO DISABLE ╟┼╧╙ ─ISK USAGE? (SO THEY WON'T DO THE WRONG THING
  1616. WHEN DEBUGGING GAMES)
  1617.  
  1618. ADD DETECTION FOR TRASHED ╟┼╧╙? (WOULD FORCE RBOOT ON EXIT)
  1619.  
  1620. READ OPTION PRESETS FROM VALUE OF ╧╨╘╔╧╬╙ CONSTANT IN SYMBOL TABLE
  1621.  
  1622. AFTER USER HAS TRASHED MEMORY, SHOULD BOOT ╟┼╧╙ FROM DISK...
  1623.  
  1624. OPTION TO ALLOW THEM TO USE ┬╥╦ AS AN INSTRUCTION (GET TO THEIR VECTOR)
  1625.  
  1626. ------------------------------------------------------------------------------
  1627. ╞OR ═ANUAL:
  1628.     MINOR: HOLDING MOUSE BUTTON LOOKS LIKE RUN/STOP DURING BOOT
  1629.     THEIR ╔╥╤ SERVICE ROUTINE MUST FINISH WITH AN ╥╘╔
  1630.         BECAUSE OF THE WAY THINGS ARE PUSHED...
  1631.     ─EBUGGER WILL NOT LOAD THEIR ╟AME OVER ╟┼╧╙: ╟AME MUST CALL ╟┼╧╙
  1632.         ROUTINES TO GET THE REST OF IT IN (THIS IS WHAT DESK╘OP
  1633.         WOULD REQUIRE ANYWAY.)
  1634.     PLACES ┬╥╦ AT ╥STR┴PPL IF IS RUNNING DESK ACCESSORY
  1635.     MENTION "╨RESS ╥┼╙╘╧╥┼ SHARPLY" IN MANUAL
  1636.     $─506 AND $╞╞00 SHADOWED
  1637.     R.MM NUKED COMPLETELY. ╥ COMMAND NO LONGER SHOWS ═EM═AP
  1638.     SCREEN FLICKER DURING STEP IS DUE TO POOR ╟┼╧╙ 128 INTERRUPT CODE
  1639.     HOLDING KEY DOWN WHEN DEBUGGER STARTS WILL FORCE ERROR ON FIRST LINE
  1640.     USER MAY WANT TO CHANGE R COMMAND: CREAT MACRO WHICH DOES ╥ AND ┬┴╬╦.
  1641.     USER CAN CHANGE ╨├ MEM MAP DIRECTLY BY ACCESSING FF00 AND D506
  1642.     IF USER'S CODE UPDATES SCREEN REGISTERS, BUT DEBUGGER SCREEN IS
  1643.         VISIBLE, THEN WHEN DEBUGGER KICKS IN IT WILL ASSERT ITS
  1644.         VALUES, LOSING THE USER'S NEW VALUES. ╫ARN THEM TO ENABLE
  1645.         TARGET SCREEN BEFORE EXECUTING SUCH CODE.
  1646.     SEE ╙PECS/USER╬OTES FOR MORE...
  1647.  
  1648. ------------------------------------------------------------------------------
  1649. ┴SSUMPTIONS:
  1650.  
  1651. ╟┼╧╙ 128 HAS SAME $FFFA VECTORS IN ┬1 AND ┬0. ╔ ASSUME THIS TO BE TRUE
  1652. FOR ALL FUTURE VERSIONS.
  1653.  
  1654. ------------------------------------------------------------------------------
  1655. ╙AVE ┬YTES:
  1656.  
  1657. MINI DEBUGGER DOES NOT HAVE TO BE AS CAREFUL ABOUT SCREEN STUFF
  1658.  
  1659. IN RESIDENT:
  1660.     COMPACT THAT DAM ─RIVE ICON!
  1661.  
  1662. ------------------------------------------------------------------------------
  1663. ╞UTURE:
  1664.     DO NOT EXECUTE ILLEGAL INSTRUCTIONS
  1665.     COULD CUSTOMIZE DEBUGGER ACCORDING TO 64/128 MODE
  1666.     ╥┼╒ AS TRACE BUFFER?
  1667.     DON'T ALLOW TWO MACROS OF SAME NAME IN MACRO FILE
  1668.     WRITE OUT MACRO FILE
  1669.     ADD MODULES TO DEBUGGER FOR MORE FEATURES
  1670.     SENSE USER'S MODULE SWAP AND CORRECT ╙┬╨S?
  1671.     COULD SAVE ┬1/┬0 INFO IN SYMBOL TABLE TO FURTHER REDUCE CONFLICTS
  1672.     MEMORY RANGE COMMANDS COULD EASILY MOVE DATA FROM BANK TO BANK
  1673.     COMMANDS LIKE ╫ WILL NOT WORK IF PRINTING IS OFF, BECAUSE
  1674.         ─ISPLAY╠OCATION IS NEVER CALLED, BYTES NEVER READ, POINTERS
  1675.         NEVER MOVED. ╘HIS COULD BE CLEANED UP.
  1676.     CLRB IS NOW CRIPPLED BECAUSE IT RELIGIOUSLY CHECKS FOR EXACT BANK 
  1677.         INFO WHEN SEARCHING THE ╙┬╨ LIST. ├OULD REMOVE THIS
  1678.         RESTRICTION TO MAKE THE CLRB COMMAND EASIER, BUT THEN
  1679.         TRYING TO REMOVE A DOUBLE-╙┬╨ (BANK1 AND 0, SAME ADDR)
  1680.         USING AN OPEN MODE WOULD BE IMPOSSIBLE.
  1681.     ┴CTUALLY, THERE IS A DEEPER PROBLEM WITH THE WAY WE STORE BANK INFO
  1682.         WITH ╙┬╨S IN THEIR TABLE: WE SHOULD JUST STORE THE EFFECTIVE
  1683.         BANK DIFFERENCE, NOT THE 16 BITS OF INFO. ╔F THE SETB COMMAND
  1684.         IS CHECKING FOR EXACT MATCHES WHEN IT INSERTS A NEW ╙┬╨,
  1685.         THEN YOU COULD HAVE SEVERAL "EQUAL" ╙┬╨S IN THE SAME TABLE.
  1686.  
  1687. ------------------------------------------------------------------------------
  1688. ╞INISHED:
  1689.     40/80 COLUMN TEXT BITS AND CENTERING STUFF, MOVED TO ONE FILE,
  1690.         STANDARDIZED ─┬ TEXT POSITIONS (WILL HELP APPLE PORT)
  1691.     MACRO LOAD BUGS, EXTENSIVE ERROR CHECKING, PAGE/LINE # BUGS
  1692.     SYMBOL LOAD BUG
  1693.     INFO BOX CODE: DISPLAYS STATUS MESSAGES AS FILES LOAD
  1694.     ╙╘╧╨ KEY BUG
  1695.     BUGS IN LOAD╙AVE┬YTE
  1696.     ERROR CHECKING DURING SYMBOL TABLE LOADS
  1697.     LOADS DEFAULT.DBM EVEN IF NO FILENAME GIVEN
  1698.     NEED ╥ES╨REP╞OR╤UIT
  1699.     EXTENSIVE ERROR CHECKING DURING MODULE SWAPS, DEBUGGER LOADS,
  1700.         AND FILENAME SELECTION (INCLUDING PRINTING CURRENT FILENAME
  1701.         DURING ERROR)
  1702.     ADDED MEMORY ╥/╫ CHECKS FOR $╞╞01-$╞╞04
  1703.     PAGE # IN MACRO FILE LOADS
  1704.     FIXED 80 COLUMN SCROLL BUG
  1705.     ╥ES╨REP╞OR╤UIT RESTORES USER'S SCREEN, NOT BE SAME AS ╟┼╧╙ SCREEN
  1706.     CLEAR PENDING INTERRUPT BEFORE STEPPING
  1707.     TEST NEW ╠├╥┴-╠├╥─ STUFF
  1708.     INVERTS ADDRESSES IF DISPLAYING BANK #0 ADDRESS
  1709.     ╟ET┬LOCK, ╨UT┬LOCK: CALL BANK 1 ROUTINE, DISPLAY BANK 1 DATA
  1710.     ╩╙╥ DOES WORK IN EITHER BANK (BECAUSE IS LIKE A TOP-STEP)
  1711.     ╥┼╒ CHECK UNDER ╟┼╧╙ ╓1.2
  1712.     TEST RBOOT IN ALL 5 CONFIGS
  1713.     ├64 MODE!
  1714.     BANK╔NFO1/2 VARIABLE: CARRIES INFO IN 64 AND 128 MODES
  1715.     CALL ╟ET1ST─IR┼NTRY, USE R5, CALL GET╬XT─IR┼NTRY
  1716.     - NEED TWO NEW PRIMITIVES
  1717.     - CHANGE DIR MACRO
  1718.     TRACKED DOWN SCREEN FLICKER BUG (IS ╟┼╧╙ 128 INTERRUPT CODE!)
  1719.     - IMPLEMENTED NEW 3-LEVEL ╬═╔ ENABLE/DISABLE CODE
  1720.     - FOUND BUG IN 128 ╟┼╧╙ ╔NIT╞OR╔╧
  1721.     - ADDED ├╔┴2 ╬═╔ HANDLING
  1722.     - WROTE DOCUMENTATION ON STRAY INTERRUPT TRAPPING
  1723.     - WROTE ROUTINES SO USER'S APPLICATIONS CAN SET INTERRUPT SERVICE
  1724.         ROUTINE VECTORS CORRECTLY WHEN RUNNING UNDER ╟EO─EBUGGER
  1725.     - DOCUMENTED VECTORS IN ╟EO─EBUGGER WEDGE CODE WHICH ARE USEFUL
  1726.     - FIXED "LDA ┴000" PARSE BUG
  1727.     - FIXED SYM SEARCH BUG
  1728.     - FIXED BUG IN STOPMAIN
  1729.     - FIXED DISASSEMBLY BUG: NOW DISPLAYS CODE WHEN CANNOT FIND LABEL
  1730.     MACRO ERROR BUG
  1731.     STOP KEY BUG
  1732.     CIA1 DDR ASSERTION
  1733.     RTI BUG
  1734.     CENTERING
  1735.     ╠D╞ILE USAGE BUG
  1736.     FILE INIT ADDRESS BUG
  1737.     EXIT AFTER DISK ERROR CORRECTED
  1738.     SELECT FILE ─┬ ICONS, SCROLLING BUG
  1739.     FILE ─┬ SELECTION AREA
  1740.     SETU / PR U.E1 BUG
  1741.     DIR / GETBLOCK FROM ╥┴═ ─╔╙╦ BUG
  1742.     FLAGS ON BOOT BUG
  1743.     ╥┬╧╧╘ MORE INTELLIGENT
  1744.     IGNORES ╙╘╧╨ KEY IN LEFT-SIDE MODE
  1745.     REWROTE SOME PRINTING ROUTINES
  1746.     ADDED NEW ╚╔─┼ FEATURE
  1747.     CORRECTED 128 MODE KEYBOARD SCAN PROBLEM
  1748.     ADDED KERNAL CHECKING TO ╟ET1ST─IR┼NTRY/╟ET╬XT─IR┼NTRY
  1749.         AND MADE SOME CORRECTIONS
  1750.     DISPLAY COPYRIGHT MESSAGES
  1751.     DISPLAY DISK NAME WHEN SELECTING FILE
  1752.     TOP-STEP THROUGH INLINE CALLS
  1753.     DISASM UP AND DOWN THROUGH INLINE CALLS
  1754.     PAGE 3 CODE ASSERTS VALUE OF $0000 TO $2╞
  1755.     DUMPD COMMAND SETS ╠├ TO ┬1$8100
  1756.     CORRECTED ╟ET┬LOCK/╨UT┬LOCK
  1757.     CORRECTED DISK AND DRIVEA/B COMMANDS
  1758.     CORRECTED ╨RINT─ISK╬AME COMMAND
  1759.     REWROTE WAY THAT THE 3 MONITORS READ/WRITE/SWAP MISC. ╟┼╧╙ VECTORS
  1760.         AND VARIABLES
  1761.     JUST FIXED 64 MODE BUG, MADE TABLE SHORTER USING ▌ OPERATOR
  1762.     BACKRAM SUPER SHOULD DISABLE ─┴ LOADS
  1763.  
  1764. ------------------------------------------------------------------------------
  1765.  
  1766.  
  1767.             ╞╔╠┼╙ ╔╬ ╘╚╔╙ ─╔╥┼├╘╧╥┘
  1768.         /STAFF/JIM/GEOS/╨╥╧─╒├╘╙/GEO╨ROG/GEO─EBUG/╙PECS
  1769.  
  1770. ╒SEFUL:
  1771.  
  1772. ╔NIT╞OR╔╧┬UG:    DETAILED INFO ON ├128 ╔NIT╞OR╔╧ BUG
  1773. ╥┼╒╬OTES:    FULL DOC ON ╟┼╧╙ ╥┼╒ USAGE AND HOW WE USE IT
  1774. ╥┼╒BUGS:    HOW TO WARN USER THAT ─═┴ USES ╓╔├ BANK INFO
  1775. APP╘YPES:    INFO ON HOW DESK╘OP AND DEBUGGER LOAD APPLICATIONS
  1776. MEM╨ROTECT:    DETAILED SPEC OF HOW DEBUGGER'S LOAD╙AVE┬YTE ROUTINE WORKS
  1777. CBM┴PPS:    INFO ON HOW TO USE PRODUCT TO DEVELOP ├┬═ APPLICATIONS
  1778. HIDE═ODE:    ALL ABOUT THE NEW HIDE DEBUGGER SCREEN FEATURE
  1779. INTERRUPTS:    NOTES TO USER ABOUT INTERRUPTS
  1780. NMI:        NOTES ON ╬═╔ INTERRUPTS, ╥┼╙╘╧╥┼ BOUNCE, ETC
  1781. RBOOT╫ARN:    WARNING ABOUT RBOOT COMMAND, KNOWN PROBLEMS
  1782. VIEW├OMMAND:    HOW NEW VIEW COMMANDS WORK
  1783. ENVIRONMENT:    VIEW COMMANDS- DECISIONS MADE
  1784. WISH╠IST:    IDEAS...
  1785.  
  1786. ╬OT USEFUL:
  1787.  
  1788. 128IDEAS:    GENERAL IDEAS ON
  1789.             INSTALLING USER'S ╔╙╥
  1790.             TRAPPING STRAY INTERRUPTS
  1791.             40/80 COLUMN SCREEN USAGE
  1792.             ON 128 MEMORY MAP REGISTERS, CLOCK SPEED, KEYBOARD
  1793. ╔NIT╔NT╙VC2.OLD: OLD ╔╙╥ INSTALL INFO
  1794. ═╔╬╔:        THINGS NUKED IN ═╔╬╔ DEBUGGER TO SAVE SPACE
  1795. ╙╨┼├╙:        OUTLINE FOR PRODUCT SPECIFICATION
  1796. ASSEM╔N┬ASIC:    HOW TO USE GEO╠INKER TO CREATE ┬┴╙╔├ APPS
  1797. BOOT:        OLD OUTLINE OF DEBUGGER BOOT SEQUENCE
  1798. DESIGN─ECISIONS: DECISIONS MADE ALONG THE WAY
  1799. PROBLEMS:    UNRESOLVED PROBLEMS IN THE DESIGN
  1800. CONTEXT╙WITCH:    INFO ON HOW ├64 / ├128 INTERRUPTS WORK, AND HOW DEBUGGER'S
  1801.             CONTEXT SWITCH WORKS WITH THEM
  1802. WARNINGS:    PROBLEMS IN THE DESIGN FOR WHICH NO SOLUTION EXISTS
  1803. SCREEN─ECISIONS: DECISIONS MADE IN DESIGN OF ╓2 SCREEN ROUTINES
  1804.  
  1805.  
  1806.                 ├128 ╔NIT╞OR╔╧ BUG?
  1807.  
  1808. ╧N BOTH THE 64 AND 128, THE ├╔┴2 CHIP HAS THE CAPABILITY OF GENERATING
  1809. AN ╬═╔ SIGNAL. ╘O PREVENT THIS FROM OCCURING DURING DISK-ACCESS ROUTINES,
  1810. THE ╟┼╧╙ ╔NIT╞OR╔╧ ROUTINE FORCES THE ├╔┴2 TO GENERATE ONE INTERRUPT BY SETTING
  1811. THE ├╔┴ TIMER VALUE TO A LOW NUMBER LIKE 1. ╔NIT╞OR╔╧ KNOWS THAT IT WILL GET
  1812. CONTROL WHEN THIS FORCED-╬═╔ OCCURS BECAUSE IT SWAPS THE KERNAL ╥╧═ INTO THE
  1813. HIGH-MEMORY AREA AND SETS THE KERNAL'S PAGE 3 ╬═╔ VECTOR (NMIVEC, $0318)
  1814. TO POINT TO A DUMMY ╬═╔ ROUTINE.
  1815.     - ON THE ├64, THIS WORKS FINE, EXCEPT FOR THE FACT THAT ╔NIT╞OR╔╧
  1816.     IS TRASHING ANY ╬═╔ VECTOR THAT THE APPLICATION WRITES TO $0318.
  1817.  
  1818.     - ON THE ├128, ╔NIT╞OR╔╧ DOES NOT SWAP ╥╧═ IN CORRECTLY (IT IS CHANGING
  1819.     LOCATION $0001). ╙O WHEN IT FORCES THIS ╬═╔ TO OCCUR, THE 6510 USES
  1820.     THE VECTOR AT ┬1$╞╞╞┴ OR ┬0$╞╞╞┴, WHICH NORMALLY POINT TO THE ╟┼╧╙
  1821.     ╬═╔ HANDLER ROUTINE, WHICH SIMPLY DOES AN ╥╘╔. ╔F AN APPLICATION CHANGES
  1822.     THE ╟┼╧╙ ╬═╔ VECTORS AT ┬0$╞╞╞┴ AND ┬1$╞╞╞┴, THEN THE USER'S HANDLER
  1823.     ROUTINE WILL GET CALLED EVERY TIME ╔NIT╞OR╔╧ IS CALLED. ╘HE USER'S
  1824.     HANDLER ROUTINE SHOULD POLL THE ├╔┴ CHIP AND RETURN IMMEDIATELY IF
  1825.     THE ╬═╔ WAS GENERATED BY THE ├╔┴. ╔F THE USER IS EXPECTING ╬═╔S FROM
  1826.     THE ├╔┴ CHIP, THEN THIS "POLLING" PROCESS MUST ALSO INCLUDE AN
  1827.     EXAMINATION OF THE STACK TO SEE IF ╔NIT╞OR╔╧ IS IN PROGRESS...
  1828.  
  1829. ├ONCLUSION:
  1830. ─UE TO THE FACT THAT ╔NIT╞OR╔╧ MAKES SOME ASSUMPTIONS ON THE ├128,
  1831. USERS WHO WRITE THEIR OWN ╬═╔ HANDLER ROUTINE WILL HAVE TROUBLE.
  1832.  
  1833. ╨OSSIBLE FIXES:
  1834. ├64 AND ├128 ╔NIT╞OR╔╧ SHOULD BOTH BRING ╥╧═ IN, AND SHOULD BOTH SAVE THE
  1835. ╬═╔ VECTOR AT $0318 (BANK 0 ON THE 128), AND RESTORE IT LATER. ╘HIS WOULD
  1836. MAKE ╔NIT╞OR╔╧ WORK ALL THE TIME (REGARDLESS OF WHAT THE USER HAS DONE TO
  1837. THE VECTORS) AND IT WOULD NOT AFFECT THE APPLICATION'S VECTORS.
  1838.  
  1839.  
  1840.         1764/1700/1750 ╥AM ┼XPANSION ╒NITS
  1841.         ----------------------------------
  1842.  
  1843. 1764:    128╦    2 64╦ BANKS, INTENDED FOR ├64
  1844.     CAN BE EXPANDED TO 512╦
  1845.     1ST 64╦ BANK: ╟┼╧╙ SYSTEM STUFF. 2ND BANK UNUSED.
  1846.  
  1847. 1700:    256╦    4 64╦ BANKS, INTENDED FOR ├128
  1848.     CAN BE EXPANDED TO 512╦
  1849.     1ST 64╦ BANK: ╟┼╧╙ SYSTEM STUFF.
  1850.     2ND - 4TH BANKS: 1541 ╥┴═ ─╔╙╦ OR 1541 DISK SHADOW.
  1851.  
  1852. 1750:    512╦    8 64╦ BANKS, INTENDED FOR ├128
  1853.     CAN BE MADE TO WORK ON ├64
  1854.     1ST 64╦ BANK: ╟┼╧╙ SYSTEM STUFF. 2ND BANK UNUSED.
  1855.     2ND - 8TH BANKS: 1541/1571 ╥┴═ ─╔╙╦ OR 1541/1571 DISK SHADOW.
  1856.  
  1857. ╥┼╒ ┬ANK #0: (1ST BANK)
  1858.  
  1859. ┬ANK #0 IS RESERVED FOR ╟┼╧╙ KERNAL USE. ╟┼╧╙ WILL, HOWEVER, HONOR SOME
  1860. ENABLE BITS IN SYS╥┴═╞LG AND ITS' SHADOW VARIABLE SYS╞LG├OPY. ┬Y CLEARING
  1861. SOME OF THESE BITS, YOU CAN PREVENT ╟┼╧╙ FROM USING CERTAIN AREAS, AND THEN
  1862. YOUR APPLICATION CAN USE ╙TASH╥┴═, ╞ETCH╥┴═, ETC TO STUFF DATA UP THERE.
  1863.  
  1864.                                 ├128 
  1865.             64 ╟┼╧╙            128 ╟┼╧╙    ├ONTROL BIT
  1866.         -----------------------    -----------------------    -------------
  1867. $0000 - $38╞╞    ═OVE─ATA SWAP AREA    ═OVE─ATA SWAP AREA    1╪╪╪╪╪╪╪
  1868. $3900 - $78╞╞    ═OVE─ATA SWAP AREA    ╟┼╧╙ KERNAL FOR ╥┬OOT    NOTE 1
  1869. $7900 - $7─╞╞    ╘O┬ASIC CODE        ╘O┬ASIC CODE        ╪╪1╪╪╪╪╪
  1870. $7┼00 - $82╞╞    ╟┼╧╙ KERNAL FOR ╥┬OOT    ╟┼╧╙ KERNAL FOR ╥┬OOT    ╪╪1╪╪╪╪╪
  1871. $8300 - $┬8╞╞    ─EVICE DRIVERS ┴, ┬, ├    ─EVICE DRIVERS ┴,┬,├    ╪1╪╪╪╪╪╪
  1872. $┬900 - $╞├3╞    ╟┼╧╙ KERNAL FOR ╥┬OOT    ╟┼╧╙ KERNAL FOR ╥┬OOT    ╪╪1╪╪╪╪╪
  1873. $╞├40 - $╞╞╞╞    ???            ???            ???
  1874.  
  1875. ╬OTE 1: DIFFERENT FOR 64/128.
  1876.  
  1877.  
  1878. ╥┼╒ ┬ANKS 1 THROUGH 7:
  1879.  
  1880. ╒SED BY DEVICE DRIVERS FOR ╥┴═ ─╔╙╦ AND SHADOWING. 
  1881. ╔T IS A REAL BAD IDEA TO TOUCH THESE BANKS.
  1882.  
  1883.  
  1884. ------------------------
  1885. ╥┼╒ ─═┴ ╬╧╘┼╙:
  1886. DISABLE SHARING WHEN USING ╥┼╒ ─═┴
  1887. RELOCATION HIGH BYTE: ONLY ┬0 R/W CAPABLE, MUST WRITE TO LOW BYTE BEFORE
  1888. CAN READ INFO BACK FROM HIGH BYTE (INDICATING RELOCATION IS ACTIVE)
  1889. ═IGHT BE ABLE TO USE THIS TO DECIDE WHETHER OR NOT ╬═╔ OCCURRED WHILE
  1890. SOMEONE WAS STUFFING VALUES IN THESE REGISTERS.
  1891. ------------------------
  1892.  
  1893. ═ATT: ╔ GUESS IT IS REALLY ONLY 1 BUG, AND IT IS NOT A BUG IF THE USER
  1894. IS USING THE STANDARD ╟┼╧╙ SCREEN FOR DISPLAY, AND IS NOT TRYING TO
  1895. ─═┴ DATA TO BACKRAM (BANK 0).
  1896.  
  1897. ╘HERE ARE A NUMBER OF CONCERNS WHEN USING THE ╥┼╒'S ─═┴ CHIP ON A ├128:
  1898.     1) THE CLOCK MUST BE SLOW (1═╚┌, NOT 2═╚┌)
  1899.         128 ╟┼╧╙ HANDLES THIS CORRECTLY.
  1900.  
  1901.     2) THE ╔╧ SPACE MUST BE IN, SO YOU CAN ACCESS THE ─═┴ CHIP
  1902.         (BIT 0 OF $FF00 "CONFIG" MUST BE A 0)
  1903.         UNDER 128 ╟┼╧╙, THE ╔╧ SPACE IS ALWAYS IN.
  1904.  
  1905.     3) WHEN THE ─═┴ CHIP FORMS AN ADDRESS FOR WHERE IN THE ├128'S 128╦ TO
  1906.     READ AND WRITE, IT IGNORES THE STANDARD BANK 0 / BANK 1 SELECTION
  1907.     CONTROLS AND THE "BANK SHARING" CONTROLS. ╘HESE CONTROLS ╔ AM TALKING
  1908.     ABOUT ARE BITS 7 AND 6 OF $╞╞00 (CONFIG) AND BITS 5 THROUGH 0 OF
  1909.     $─506 (╥├╥) IN THE ╔╧ SPACE.
  1910.  
  1911.     ╘HE ─═┴ CHIP KNOWS WHICH OF THE TWO 64╦ BANKS TO USE BECAUSE IT USES
  1912.     THE SAME BANK 0 / BANK 1 CONTROL LINE THAT THE ╓╔├ CHIP USES. ╘HIS CAN
  1913.     BE USEFUL: NO MATTER WHAT BANK SETUP YOU HAVE FOR THE 8510 PROCESSOR
  1914.     CHIP, YOU CAN HAVE THE ─═┴ CHIP READ/WRITE TO ANYWHERE IN EITHER
  1915.     BANK. ╬OW DEPENDING ON WHICH BANK THE ╓╔├ CHIP IS LOOKING AT AND WHICH
  1916.     BANK YOU WANT TO ╥/╫ TO, YOU MAY HAVE TO CHANGE THE ╓╔├ CHIP BANK
  1917.     # SETTING TEMPORARILY (WILL CAUSE SCREEN TO FLASH).
  1918.  
  1919.     ├ODE TO DO THIS: (ASSUMES R0-R3╠ HAVE ALREADY BEEN SET UP FOR ╙TASH╥┴═)
  1920.             ;FIRST, ╔ ASSUME ╔╧ SPACE IS IN, BECAUSE UNDER
  1921.             ;128 ╟┼╧╙, $╞╞00 = $7┼, MEANING ╔╧ IS IN.
  1922.                 
  1923.             LDA    MMU+6        ;GET "╥AM├ONTROL╥EGISTER"
  1924.             PHA            ;SAVE CURRENT BANK SHARING
  1925.                         ;STATUS AND ╓╔├ BANK # INFO
  1926.                         ;ON STACK
  1927.  
  1928.             AND    #%00111111    ;KEEP ┬5-┬0 INTACT
  1929.             ORA    #┬┴╬╦ << 6    ;SET ┬IT 6 ACCORDING TO BANK WE
  1930.                         ;WANT ╓╔├ AND ─═┴ CHIPS TO SEE
  1931.             STA    MMU+6        ;SAVE NEW ╓╔├ BANK # INFO
  1932.  
  1933.             JSR    ╙TASH╥┴═/╞ETCH╥┴═ ETC...
  1934.                         ;CALL ╟┼╧╙ TO TURN ON ─═┴ CHIP
  1935.  
  1936.             PLA            ;RESTORE ╓╔├ BANK #
  1937.             STA    MMU+6
  1938.  
  1939.  
  1940.  
  1941.             ├OMMODORE 64/128 ╟┼╧╙ ╞ILE TYPES,
  1942.         AND IF THE DESK╘OP AND/OR GEO─EBUGGER CAN LOAD THEM.
  1943.  
  1944.  
  1945.  
  1946. ├┬═    ╟┼╧╙        ╧PEN FROM
  1947. TYPE    FILE TYPE    DESK╘OP       ─ESCRIPTION    
  1948. ----    ---------------    -------    ---------------------------------------
  1949. ─┼╠    ANYTHING    NO    ─ELETED FILE
  1950.  
  1951. ╙┼╤    ╬╧╘_╟┼╧╙    NO    ├OMMODORE SEQUENTIAL DATAFILE, PROBABLY
  1952.                 GENERATED BY ┬┴╙╔├ PROGRAM.
  1953.  
  1954. ╙┼╤    ─┴╘┴        NO    ╙AME AS ABOVE, WITH HEADER ADDED BY ╔CON ┼DITOR.
  1955. ----    ---------------    -------    ------------------------------------------------
  1956. ╨╥╟    ╬╧╘_╟┼╧╙    YES *1    ├OMMODORE ┬┴╙╔├ OR ASSEMBLY PROGRAM.
  1957.                 
  1958.                 ╔F THE FILE IS A ┬┴╙╔├ PROGRAM, THEN IT WAS
  1959.                 PROBABLY CREATED USING ├64 OR ├128 ┬┴╙╔├'S
  1960.                 "╙┴╓┼" COMMAND. ╘HE DESK╘OP CAN ALWAYS LOAD SUCH
  1961.                 A PROGRAM, AND IN SOME CASES CAN ╘URBO-LOAD IT.
  1962.  
  1963.                 ╔F THE FILE IS AN ASSEMBLY-LANGUAGE PROGRAM,
  1964.                 THEN IT WAS PROBABLY CREATED USING AN ASSEMBLER
  1965.                 UTILITY, OR USING ├128 ┬┴╙╔├'S "┬╙┴╓┼" COMMAND.
  1966.  
  1967. ╨╥╟    ┬┴╙╔├        YES *2    ├OMMODORE ┬┴╙╔├ PROGRAM, WITH HEADER BLOCK
  1968.                 ATTACHED BY ╔CON ┼DITOR. ╔F PROGRAM IS LESS THAN
  1969.                 31╦ IN SIZE, THE DESK╘OP WILL HAVE ╟┼╧╙
  1970.                 ╘URBO-LOAD IT.
  1971.  
  1972. ╨╥╟    ┴╙╙┼═┬╠┘    YES *3    ├OMMODORE ASSEMBLY PROGRAM, WITH HEADER BLOCK
  1973.                 ATTACHED BY ╔CON ┼DITOR. ╔F PROGRAM LOADS TO
  1974.                 APPLICATION SPACE ($400-$7╞╞╞), THEN THE DESK╘OP
  1975.                 WILL HAVE ╟┼╧╙ ╘URBO-LOAD IT.
  1976. ----    ---------------    -------    ------------------------------------------------
  1977. ╒╙╥    ╬╧╘_╟┼╧╙    NO    ╧LD ├OMMODORE "USER" FILE.
  1978. ╒╙╥    ┬┴╙╔├        NO    ╔╠╠┼╟┴╠ ├╧═┬╔╬┴╘╔╧╬
  1979. ╒╙╥    ┴╙╙┼═┬╠┘    NO    ╔╠╠┼╟┴╠ ├╧═┬╔╬┴╘╔╧╬
  1980. ╒╙╥    ─┴╘┴        NO    ╔╠╠┼╟┴╠ ├╧═┬╔╬┴╘╔╧╬
  1981. ╒╙╥    ╙┘╙╘┼═        NO    ╟┼╧╙ SYSTEM FILE (╙┼╤ OR ╓╠╔╥ STRUCTURE)
  1982. ╒╙╥    ─┼╙╦_┴├├    YES    ╟┼╧╙ DESK ACCESSORY (╙┼╤ STRUCTURE)
  1983. ╒╙╥    ┴╨╨╠╔├┴╘╔╧╬    YES    ╟┼╧╙ APPLICATION FILE (╙┼╤ OR ╓╠╔╥)
  1984. ╒╙╥    ┴╨╨╠_─┴╘┴    YES    DATA FILE FOR A ╟┼╧╙ APP. (╙┼╤ OR ╓╠╔╥)
  1985. ╒╙╥    ╞╧╬╘        NO    ╟┼╧╙ FONT FILE (╓╠╔╥)
  1986. ╒╙╥    ╨╥╔╬╘┼╥        NO    ╟┼╧╙ PRINTER DRIVER (╙┼╤)
  1987. ╒╙╥    ╔╬╨╒╘_─┼╓╔├┼    NO    ╟┼╧╙ INPUT DEVICE (MOUSE, KOALA, ETC. ╙┼╤)
  1988. ╒╙╥    ─╔╙╦_─┼╓╔├┼    NO    ╟┼╧╙ DISK DEVICE DRIVER
  1989. ╒╙╥    ╙┘╙╘┼═_┬╧╧╘    NO    ╟┼╧╙ SYSTEM BOOT FILE
  1990.                     (FOR ╟┼╧╙, ╟┼╧╙ ┬╧╧╘, ╟┼╧╙ ╦┼╥╬┴╠)
  1991. ╒╙╥    ╘┼═╨╧╥┴╥┘    NO    ╘EMPORARY FILE TYPE, FOR SWAP FILES.
  1992. ╒╙╥    ┴╒╘╧_┼╪┼├    YES    ┴PP (╙┼╤ OR ╓╠╔╥) WHICH LOADS AND RUNS UPON BOOT
  1993. ╒╙╥    ╔╬╨╒╘_128    NO    ╟┼╧╙ 128 ╔NPUT DRIVER
  1994. ----    ---------------    -------    ------------------------------------------------
  1995. ╥┼╠    ╬╧╘_╟┼╧╙    NO    ├OMMODORE RANDOM-ACCESS DATAFILE, AS IF
  1996.                 GENERATED BY ┬┴╙╔├ PROGRAM. ├ANNOT BY GIVEN
  1997.                 AN ICON BY ╔CON ┼DITOR BECAUSE WOULD DESTORY
  1998.                 EXISTING POINTER TO DATA CHAIN.
  1999. ----    ---------------    -------    ------------------------------------------------
  2000.  
  2001.  
  2002.  
  2003. ╬OTES:
  2004. *1: (╨╥╟, ╬╧╘_╟┼╧╙)
  2005.  
  2006. ╫HEN YOU TRY TO OPEN THIS TYPE OF PROGRAM FROM THE DESK╘OP, THE DESK╘OP'S
  2007. "─O┬ASIC╠OAD" ROUTINE WILL LOAD THE PROGRAM'S FIRST DATA BLOCK, TO CHECK ITS
  2008. LOAD ADDRESS.
  2009.     ADDR < $0400
  2010.         ╔S A "STACK-GRABBING" ASSEMBLY LANGUAGE PROGRAM. ╟┼╧╙ CANNOT
  2011.         ╘URBO-LOAD THIS, SO WE FORCE ┬┴╙╔├ TO EXECUTE: ╠╧┴─ "NAME",8,1.
  2012.     ADDR = $0801        ($1├01 ON 128)
  2013.         ╔S A ┬┴╙╔├ PROGRAM. ╘HE DESK╘OP WILL CHECK THE FILE SIZE
  2014.         INFORMATION IN THE DIRECTORY ENTRY TO SEE IF THE PROGRAM
  2015.         CAN BE ╘URBO-LOADED. ╔F THE ┬┴╙╔├ PROGRAM IS <= 30480 BYTES,
  2016.         THE DESK╘OP WILL HAVE ╟┼╧╙ ╘URBO-LOAD IT, AND THEN FORCE ┬┴╙╔├
  2017.         TO EXECUTE THE ╥╒╬ COMMAND. ╔F THE ┬┴╙╔├ PROGRAM IS LARGER THAN
  2018.         THIS, THE DESK╘OP WILL NOT LOAD IT.
  2019.     ADDR = OTHER
  2020.         ╘HE ├64 DESK╘OP WILL NOT ALLOW YOU TO LOAD THIS APPLICATION.
  2021.         ╘HIS IS SO THE DESK╘OP WILL NOT ATTEMPT TO RUN A ├128 ┬┴╙╔├
  2022.         PROGRAM UNDER ├64 ┬┴╙╔├.
  2023.         ╘HE ├128 DESK╘OP WILL USE THE ┬┴╙╔├ "┬╧╧╘" COMMAND TO LOAD
  2024.         THIS FILE.
  2025.  
  2026. ╔F YOU ATTEMPT TO OPEN SUCH A PROGRAM FROM ╟EO─EBUGGER, IT MUST HAVE A LOAD
  2027. ADDRESS OF $0400 OR HIGHER. ╟EO─EBUGGER WILL NOT CHECK THE LOAD ADDRESS TO SEE
  2028. IF THE PROGRAM IS ┬┴╙╔├ CODE, SO YOU CAN USE GEO─EBUGGER TO EXAMINE THE
  2029. INTERNAL STRUCTURE OF ├64 AND ├128 ┬┴╙╔├ PROGRAMS.
  2030.  
  2031. *2: (╨╥╟, ┬┴╙╔├)
  2032.  
  2033. ╘HE DESK╘OP WILL ATTEMPT TO LOAD SUCH A FILE IN THE SAME MANNER AS THE
  2034. "ADDR = $0801" CASE ABOVE. ┴S NOTED ABOVE, THE DEBUGGER CAN ALSO LOAD
  2035. SUCH A PROGRAM FILE.
  2036.  
  2037. *3: (╨╥╟, ┴╙╙┼═┬╠┘)
  2038.  
  2039. ╫HEN YOU TRY TO OPEN THIS TYPE OF FILE FROM THE DESK╘OP, THE DESK╘OP'S
  2040. "─O┴SSEMBLY╠OAD" ROUTINE WILL LOAD THE FILE'S FIRST DATA BLOCK, TO CHECK ITS
  2041. LOAD ADDRESS.
  2042.     ADDR < $0400
  2043.         ╔S A "STACK-GRABBING" ASSEMBLY LANGUAGE PROGRAM. ╟┼╧╙ CANNOT
  2044.         ╘URBO-LOAD THIS, SO THE DESK╘OP FORCES ┬┴╙╔├ TO EXECUTE:
  2045.         ╠╧┴─ "NAME",8,1.
  2046.     $0400 <= ADDR < $0800
  2047.         ╘HE ├64 DESK╘OP WILL NOT ALLOW YOU TO LOAD THIS PROGRAM,
  2048.         BUT THE ├128 DESK╘OP WILL.
  2049.     ADDR >= $0800
  2050.         ╘HE DESK╘OP WILL LOAD THE PROGRAM'S HEADER BLOCK, TO CHECK
  2051.         ITS ENDING ADDRESS. ╔F THE PROGRAM ENDS BELOW $8000, THE
  2052.         DESK╘OP WILL HAVE ╟┼╧╙ ╘URBO-LOAD THE PROGRAM. ┬┴╙╔├ WILL
  2053.         THEN EXECUTE A ╙┘╙ TO THE PROGRAM'S INIT ADDRESS FROM THE
  2054.         HEADER BLOCK. ╔F THE PROGRAM ENDS AT OR ABOVE $8000, THE
  2055.         DESK╘OP WILL FORCE ┬┴╙╔├ TO EXECUTE:
  2056.             ╠╧┴─ "NAME",8,1:╙┘╙ (INIT ADDRESS)
  2057.  
  2058. ╔F YOU ATTEMPT TO OPEN SUCH A PROGRAM FROM ╟EO─EBUGGER, IT MUST HAVE A LOAD
  2059. ADDRESS OF $0400 OR HIGHER. ╟EO─EBUGGER WILL SET THE ╨├ TO THE VALUE OF THE
  2060. INIT ADDRESS WHICH IS STORED IN THE HEADER BLOCK. ╟EO─EBUGGER WILL NOT CHECK
  2061. THE ENDING ADDRESS OF THE PROGRAM.
  2062.  
  2063.  
  2064.         ╟EO─EBUGGER ═EMORY ╥EAD/╫RITE ╥OUTINE
  2065.         -------------------------------------
  2066.  
  2067. ╫HENEVER THE DEBUGGER IS ASKED TO READ OR WRITE A BYTE TO MEMORY, IT WORKS
  2068. THROUGH THE ╠OAD┬YTE/╙AVE┬YTE ROUTINE IN ═ONITOR/C64IO. ┼XAMPLES INCLUDE:
  2069.     - EXAMINING AND MODIFYING MEMORY USING "┴" OR "═" OPEN COMMANDS
  2070.     - SETTING AND CLEARING INSTRUCTION BREAKPOINTS
  2071.     - MEMORY RANGE COMMANDS: MOVE, FILL, DIFF, FIND
  2072.  
  2073. ╘HESE TWO ROUTINES ARE BOTH VERY SHORT: THEY SIMPLY SET A FLAG INDICATING
  2074. WHETHER WE ARE READING OR WRITING, AND THEN CALL ╠OAD╙AVE┬YTE.
  2075.  
  2076. ╠OAD╙AVE┬YTE GOES THROUGH A FOUR STEP PROCESS TO DETERMINE WHAT TO DO WITH THE
  2077. MEMORY ACCESS REQUEST. ╘HIS IS A COMPLICATED PROCESS BECAUSE THERE ARE MANY
  2078. CASES WHERE A DIRECT LOAD/SAVE IS OUT OF THE QUESTION:
  2079.     - THE USER IS TRYING TO MODIFY A BYTE IN ZERO PAGE, BUT THE MONITOR
  2080.     KEEPS THE USER'S ZERO PAGE IN THE MONITOR VARIABLE SPACE
  2081.     - THE USER IS TRYING TO MODIFY A BYTE IN THE APPLICATION SPACE,
  2082.     BUT IT HAS BEEN SWAPPED OUT TO THE ╥┼╒
  2083.     - THE USER IS TRYING TO WRITE OVER MONITOR CODE
  2084.     - THE USER IS TRYING TO READ/WRITE TO THE OTHER BANK THAN IS CURRENTLY
  2085.     IN DURING MONITOR EXECUTION.
  2086.     - THE USER IS TRYING TO MODIFY ├╨╒_─┴╘┴ OR CONFIG, WHICH WOULD
  2087.     IMMEDIATELY CHANGE THE MEMORY MAP AND PROBABLY CRASH THE DEBUGGER.
  2088.  
  2089. ╠OAD╙AVE┬YTE'S FOUR STEP PROCESS CAN BE BROKEN DOWN AS:
  2090.     1) ╚ANDLE MEMORY MAP CONTROLS AT $0000, $0001, AND $╞╞00 (128)
  2091.     AS A SPECIAL CASE.
  2092.     2) ╔F THIS ACCESS IS IN THE ╔╧ SPACE, AND ╔╧ IS ENABLED, USE THE
  2093.     ╔╧ ┴──╥┼╙╙ ╘┴┬╠┼ TO DECIDE WHICH ╔╧ LOCATIONS HE CAN MODIFY DIRECTLY
  2094.     AND WHICH ONES WE KEEP SHADOWS FOR IN THE MONITOR VARIABLE AREA.
  2095.     3) ╔F THIS ACCESS IS IN A SPACE WHERE ╥╧═ IS CURRENTLY IN, THEN
  2096.     ONLY ALLOW READ OPERATIONS. ╘HE DEBUGGER DOES NOT ALLOW
  2097.     "BLEED THROUGH" WRITES TO RAM UNDERNEATH ROM.
  2098.     4) ╔F NONE OF THE ABOVE CASES HOLD, THEN THE ACCESS MUST BE TO RAM.
  2099.     ├ALCULATE THE EFFECTIVE BANK NUMBER (128 ONLY), AND USE THE
  2100.     ╥┴═ ┴──╥┼╙╙ ╘┴┬╠┼ TO DECIDE WHICH LOCATIONS NEED RE-DIRECTION OR
  2101.     ARE ILLEGAL.
  2102.  
  2103.  
  2104. ╚ERE IS THE KEY USED IN THE LOOKUP TABLES ON THE FOLLOWING PAGES:
  2105.  
  2106. MINI / SUPER / BACK SUPER
  2107.  
  2108. ═ = MINI DEBUGGER CODE AREA (ILLEGAL TO READ/WRITE)
  2109. ╙ = SUPER DEBUGGER CODE AREA (MUST READ/WRITE TO ╥┼╒ SPACE)
  2110. ┬ = BACKRAM SUPER DEBUGGER CODE AREA (ILLEGAL TO READ/WRITE)
  2111. ╪ = USED BY ALL THREE MONITORS, NO COPY SAVED (ILLEGAL TO READ/WRITE)
  2112. ╘ = SUPER DEBUGGER TEXT SCREEN AREA (├╧╠╧╥_═┴╘╥╔╪: R/W TO ╥┼╒ SPACE)
  2113. ╥ = READ ONLY
  2114. ─ = READ/WRITE DIRECTLY
  2115. ┌ = ZERO PAGE RAM WHICH MONITOR USES (MUST READ/WRITE TO SAVED COPY OF AREA)
  2116. NA = NOT APPLICABLE (FOR EXAMPLE, ╔╧ CANNOT SHOW UP AT $0400)
  2117.  
  2118.  
  2119.  
  2120.         ╙TEP 1: CHECK FOR OVERRIDING ╔╧ LOCATIONS
  2121.         -----------------------------------------
  2122.  
  2123. ╨SEUDO-CODE:
  2124.     ├64═ODE:
  2125.         $0000    DIRECT, READ ONLY
  2126.         $0001    <--> APP═EM═AP            (MEMORY MAP INFO)
  2127.     ├128:
  2128.         $0000    DIRECT, READ ONLY
  2129.         $0001    <- ┬2 AND ┬1  -> APP├╨╒_┬21    (VIDEO CONTROL INFO)
  2130.             <- OTHER BITS -> APP═EM═AP    (NON ESSENTIAL INFO)
  2131.         $╞╞00    <--> APP├ONFIG            (MEMORY MAP INFO)
  2132.         $╞╞01-$╞╞04    SPECIAL CASE: IS READING ╨├╥┴-╨├╥─
  2133.                 OR IS SENDING ONE OF THOSE FOUR TO ├ONFIG
  2134.  
  2135.  
  2136.  
  2137.  
  2138.         ╙TEP 2: CHECK FOR ╔╧ SPACE ACCESSES
  2139.         -----------------------------------
  2140.  
  2141.  
  2142.             ╔╧ ┴──╥┼╙╙ ╘┴┬╠┼
  2143.  
  2144.                     ├64 ═ODE.......    ├128 ═ODE..............
  2145. ═EMORY RANGE    USAGE / ╟┼╧╙ EQUATE        ╔╧            ╔╧
  2146. -------------    -----------------------    -------    -------    -------    -------    -------
  2147. $0000 - $─010    RAM / IO: ╓╔├ REGS        ─/─            ─/─/─
  2148. $─011         *    IO: ╓╔├ GRCTRL1            APP╓╔├1            APP╓╔├1
  2149. $─012 - $─014    IO: ╓╔├ REGS            ─/─            ─/─/─
  2150. $─015         *    IO: ╓╔├ MOBENBLE        APP╓╔├2            APP╓╔├2
  2151. $─016         *    IO: ╓╔├ GRCTRL2            APP╓╔├3            APP╓╔├3
  2152. $─017        IO: ╓╔├ REG            ─/─            ─/─/─
  2153. $─018         *    IO: ╓╔├ GRMEMPTR        APP╓╔├4            APP╓╔├4
  2154. $─019 - $─020    IO: ╓╔├ REGS            ─/─            ─/─/─
  2155. $─021         *    IO: ╓╔├ BAKCLR0            APP╓╔├5            APP╓╔├5
  2156. $─022 - $─02╞    IO: ╓╔├ REGS            ─/─            ─/─/─
  2157. $─030         *    IO: ├128 2═╚┌ CTRL        ─/─            APP├LK
  2158. $─031 - $─4╞╞    RAM / IO / ROM            ─/─            ─/─/─
  2159. $─500         *    IO: ├128 ══╒ CONTROL        ─/─            APP├ONFG
  2160. $─501 - $─504    IO: ├128 ══╒ REGS        ─/─            ─/─/─
  2161. $─505         *    IO: ├128 ══╒ ═├╥        ─/─            ╥/╥/╥
  2162. $─506         *    IO: ├128 ══╒ "╥├╥"        ─/─            APP╥├╥*1
  2163. $─507 - $─50┴ *    IO: ├128 ══╒ ┌╨ RELOC        ─/─            ╥/╥/╥
  2164. $─50┬ - $─7╞╞    RAM / IO / ROM            ─/─            ─/─/─
  2165. $─800 - $─┬╞╞ *    IO: TEXT COLORS "CTAB"        ╥/╥            *2*
  2166. $─├00 - $─├╞╞    RAM / IO / ROM            ─/─            ─/─/─
  2167. $──00         *    IO: CIA2BASE (╓╔├ MMAP)         APP├╔┴2_┬10     *3*     APP├╔┴2_┬10
  2168. $──01 - $─┼╞╞    RAM / IO / ROM            ─/─            ─/─/─
  2169. $─╞00 - $─╞09 *    IO: ╥┼╒ ─═┴ CONTROL        ╥/╥            ╥/╥/╥
  2170. $─╞0┴ - $┼╞╞╞    RAM / IO / ROM            ─/─            ─/─/─
  2171. $╞001 - $╞╞╞╞    RAM / ROM            ─/─            ─/─/─
  2172. -------------    -----------------------    -------    -------    -------    -------    -------
  2173.  
  2174. ├ONCLUSIONS:
  2175.     ╬O DIFFERENCES BETWEEN THREE DEBUGGERS- JUST BETWEEN TWO MACHINES.
  2176.     ╧NLY THREE POSSIBLITIES: DIRECT, READ-ONLY, OR ONE OF SEVERAL
  2177.       SPECIAL CASE ROUTINES.
  2178.     ╞OR EACH AREA, NEED BYTE IN TABLE WHICH CONTAINS TWO THREE-BIT CODES,
  2179.       DENOTING WHAT TO DO ON THAT MACHINE.
  2180.     ╘ABLE SIZE: 25 LINES * (1 WORD + 1 BYTE) = 75 BYTES
  2181.     ╨LUS ╓╔├ HANDLER ROUTINE (USES ADDRESS TO SEE WHICH ╓╔├ REGISTERS
  2182.       WE WANT, AND THEN READS/WRITES TO MONITOR SHADOW FOR THAT REGISTER.
  2183.     ╨LUS HANDLER ROUTINES FOR APP├LK, APP├ONFIG, APP╥├╥, AND APP├╔┴2_┬10.
  2184.  
  2185. ╬╧╘┼ 1: IN 128 MODE, $─506 IS SPLIT UP BETWEEN APP╥├╥_┬76 (╓╔├ BANK INFO)
  2186. AND APP╥├╥_┬50 (MEMORY MAP INFO).
  2187.  
  2188. ╬╧╘┼ 2: THE TEXT SCREEN COLOR TABLE IS LOCATED AT $─800-$─┬╞╞.
  2189. ╔N ├64 MODE, WE ONLY ALLOW READS FROM THIS AREA, SO THE USER WON'T SCREW
  2190. UP THE MONITOR'S TEXT COLORS.
  2191. ╔N ├128 MODE, THERE ARE ACTUALLY TWO COLOR TABLES AT THIS LOCATION.
  2192. ┬IT 1 OF $0001 DETERMINES WHICH IS VISIBLE TO THE 6510. ╔F THIS BIT IS
  2193. CLEAR, WE ALLOW DIRECT READ/WRITES. ╔F THIS BIT IS SET, WE ONLY ALLOW READS.
  2194.  
  2195. ╬╧╘┼ 3: BITS 1-0 OF LOCATION $──00 CONTROL WHICH 16╦ MEMORY BANK THE ╓╔├
  2196. CHIP USES, AND SO ARE SAVED IN APP├╔┴_┬10. ╘HE OTHER BITS (7-2) ARE WRITTEN TO/
  2197. READ FROM MEMORY. ├AUTION ERIC: IN ├64 MODE, MAKE SURE ╔╧ IS IN WHEN DOING THIS.
  2198.  
  2199. ╨SEUDO-├ODE:
  2200.     IF THE ADDRESS IS BETWEEN $─000 AND $─╞╞╞:
  2201.         ├64:    CHECK LOCATION $0001.
  2202.             ╔F (┬1=1 OR ┬0=1), THEN ╔/╧ SPACE IN.
  2203.                 ╔F ┬2=0, THEN 4╦ ├╚┴╥ ╥╧═ IS VISIBLE:
  2204.                     ONLY ALLOW READS.
  2205.                 ╔F ┬2=1, THEN 4╦ OF ╔/╧ DEVICES ARE VISIBLE:
  2206.                     CALL TABLE LOOKUP ROUTINE, USING
  2207.                       ╔╧ ┴──╥┼╙╙ ╘┴┬╠┼.
  2208.                     USE ┬5-┬3 OF RETURN BYTE TO DECIDE
  2209.                       WHAT TO DO.
  2210.             ELSE CAN READ/WRITE DIRECTLY
  2211.             
  2212.         ├128:    CHECK LOCATION $╞╞00:
  2213.             ╔F (┬0=0), THEN ╔/╧ SPACE IS IN.
  2214.                 CALL TABLE LOOKUP ROUTINE, USING
  2215.                   ╔╧ ┴──╥┼╙╙ ╘┴┬╠┼.
  2216.                 USE ┬2-┬0 OF RETURN BYTE TO DECIDE
  2217.                   WHAT TO DO.
  2218.             ELSE CAN READ/WRITE DIRECTLY
  2219.  
  2220.     ELSE (ADDRESS IS NOT IN ╔╧ RANGE) GO TO STEP 3
  2221.  
  2222.  
  2223.  
  2224.         ╙TEP 3: CHECK FOR ╥╧═ ACCESS
  2225.         ----------------------------
  2226.  
  2227.  
  2228.         ├64 ═ODE ╥OM ╘RUTH ╘ABLE
  2229.                     LOCATION $0001
  2230. ═EMORY RANGE    ╫HAT ═IGHT ┬E ╘HERE    76543210    ╬OTES
  2231. -------------    -----------------------    ---------------    ------------------------
  2232. $0000 - $9╞╞╞    RAM            --------
  2233. $┴000 - $┬╞╞╞    RAM / ┬ASIC ROM        -------1    ┬0=1
  2234. $├000 - $─╞╞╞    RAM    *1*        --------
  2235. $┼000 - $╞╞╞╞    RAM / ╦ERNAL ROM    ------1-    ┬1=1
  2236.  
  2237. ╬OTE THAT THERE ARE CASES WHERE CARTRIDGES PLUGGED INTO THE ├64 CAN OVERRIDE
  2238. THESE AREAS. ╘HE ├64 ╨ROG. ╥EF. ╟UIDE IS NOT VERY CLEAR ON THIS, SO ╔ WILL
  2239. NOT BE CONCERNED ABOUT CARTRIDGES FOR NOW. ┼─╙ 2/8/88.
  2240.  
  2241. ╬OTE 1: THE CASE WHERE ├╚┴╥ ╥╧═ IS MAPPED IN FROM $─000 TO $─╞╞╞ HAS ALREADY
  2242. BEEN HANDLED BY ╔╧ TABLE.
  2243.  
  2244.  
  2245.         ├128 ═ODE ╥OM ╘RUTH ╘ABLE
  2246.                     LOCATION $╞╞00
  2247. ═EMORY RANGE    ╫HAT ═IGHT ┬E ╘HERE    76543210    ╬OTES
  2248. -------------    -----------------------    ---------------    ------------------------
  2249. $0000 - $3╞╞╞    RAM            --------
  2250. $4000 - $7╞╞╞    RAM / ┬ASIC ROM LOW    ------0-    ┬1=0
  2251. $8000 - $┬╞╞╞    RAM / ┬ASIC ROM HIGH    ----AB--    ┬3=0 OR ┬2=0
  2252. $├000 - $╞╞╞╞    RAM / ╦ERNAL ROM    --AB----    ┬5=0 OR ┬4=0
  2253.  
  2254. ╔ DON'T COMPLETELY UNDERSTAND ├128 EXTERNAL ROMS YET. ╔ AM GOING TO ASSUME THAT
  2255. ┬5-┬1 IN $╞╞00 DETERMINE IF THERE IS ANY ╥╧═ IN. ╔ DON'T CARE IF IS ╦ERNAL,
  2256. EXTERNAL, INTERNAL, OR CARTRIDGE ROM. ╔ JUST WON'T WRITE TO THOSE RANGES IF THE
  2257. BITS ARE CLEAR.
  2258.  
  2259.  
  2260. ╨SEUDO-CODE:
  2261.     ┴S IT TURNS OUT, THE FASTEST AND TIGHTEST CODE TO HANDLE THIS
  2262.     SIMPLY CHECKS ADDRESS RANGES AND BITS DIRECTLY. ╙EE THE CODE.
  2263.  
  2264.  
  2265.  
  2266.         ╙TEP 4: ╥┴═ ACCESS
  2267.         ------------------
  2268.  
  2269.                     ├64 ═ODE    ├128 ═ODE......
  2270. ═EMORY RANGE    USAGE / ╟┼╧╙ EQUATE    ╥┴═        ╥┴═ ┬1    ╥┴═ ┬0
  2271. -------------    -----------------------    -------        -------    -------
  2272. $0000 - $0001    ┴LREADY HANDLED BY STEP 1.
  2273. $0002 - $00── *    ZERO PAGE (MON SWAPS)    ┌/┌        NA    ┌/┌/┌
  2274. $00─┼ - $00╞╞    ZERO PAGE        ─/─        NA    ─/─/─
  2275. $0100 - ╙╨    *    STACK (MONITOR USES)    ╪/╪        NA    ╪/╪/╪
  2276. ╙╨+1  - $01╞╞    STACK (USER'S DATA)    ─/─        NA    ─/─/─ *1*
  2277. $0200 - $0313    RAM             ─/─        ─/─/─    ─/─/─
  2278. $0314 - $0319 *    BAS╔╥╤╓EC, ┬╥╦, ╬═╔    ╥/╥        ─/─/─    ╥/╥/╥
  2279. $031┴ - $0333    RAM            ─/─        ─/─/─    ─/─/─
  2280. $0334 - $03╞┬ *    MONITOR CODE        ╪/╪        ╪/╪/╪    ╪/╪/╪
  2281. $03╞├ - $03╞╞    MONITOR ╩╙╥ AREA    ─/─        ─/─/─    ─/─/─
  2282. $0400 - $1╞╞╞ *    RAM            ─/╙        ─/╙/─    ─/─/─
  2283. $2000 - $3┬╞╞ *    RAM             ─/╙        ─/╙/─    ─/─/┬
  2284. $3├00 - $5╞╞╞ *    RAM             ═/╙        ═/╙/─    ─/─/┬
  2285. $6000 - $78╞╞ *    RAM            ─/╙        ─/╙/─    ─/─/┬
  2286. $7900 - $8┬╞╞ *    RAM            ─/─        ─/─/─    ─/─/┬
  2287. $8├00 - $8╞┼7 *    RAM (MONITOR TEXT SCR)    ╥/╘        ╥/╘/─    ─/─/┬
  2288. $8╞┼8 - $9╞╞╞ *    RAM            ─/─        ─/─/─    ─/─/┬
  2289. $┴000 - $╞╞╞9    RAM / ROM IF >$─000    ─/─        ─/─/─    ─/─/─
  2290. $╞╞╞┴ - $╞╞╞╞ *    ╬═╔_╓┼├╘╧╥, ╥┼╙┼╘, ╔╥╤    ╥/╥        ╥/╥/╥    ╥/╥/╥
  2291. -------------    -----------------------    -------    -------    -------    -------    -------
  2292. ├ONCLUSIONS:
  2293.     ═INI DEBUGGER AND ╙UPER DEBUGGERS ARE COMPLETELY DIFFERENT CASES.
  2294.       ╒SE CONDITIONAL ASSEMBLY TO DECIDE WHICH TABLE TO USE.
  2295.     ═INI DEBUGGER HAS FOUR POSSIBILITIES: DIRECT, READ-ONLY, ILLEGAL,
  2296.       AND ZERO PAGE. ╞OR EACH AREA, NEED BYTE IN TABLE WHICH CONTAINS
  2297.       TWO THREE-BIT CODES, DENOTING WHAT TO DO ON THAT MACHINE.
  2298.       ╘ABLE SIZE: 15 LINES * (1 WORD + 1 BYTE) = 45 BYTES
  2299.       ┴LL TABLE VALUES ARE STANDARD CASES.
  2300.     ╘HE SUPER DEBUGGER'S TABLE IS SIMILAR: FOR EACH AREA, THERE ARE SIX
  2301.       POSSIBILITIES, ALL STANDARD. ╘HE TABLE NEEDS TO GIVE US A WORD VALUE
  2302.       WHICH CONTAINS FIVE THREE-BIT CODES:
  2303.         MACHINE        MONITOR        ACCESS TYPE    BITS IN WORD
  2304.         ---------------    ---------------    ---------------    ------------
  2305.         128 MODE    BACKRAM SUPER    BANK 0 ACCESS    ┬14-┬12
  2306.         128 MODE    BACKRAM SUPER    BANK 1 ACCESS    ┬11-┬9
  2307.         128 MODE    ╥┼╒ SUPER    BANK 0 ACCESS    ┬8-┬6
  2308.         128 MODE    ╥┼╒ SUPER    BANK 0 ACCESS    ┬2-┬0
  2309.         64 MODE        ╥┼╒ SUPER            ┬5-┬3
  2310.         ---------------    ---------------    ---------------    ------------
  2311.       ╘ABLE SIZE: 18 LINES * (1 WORD + 2 BYTES) = 76 BYTES
  2312.       ┴LL TABLE VALUES ARE STANDARD CASES.
  2313.  
  2314.  
  2315. ╬╧╘┼ 1: THE REGION ╙╨+1 TO $313 CAN BE COMBINED, BECAUSE THE EFFECTIVE BANK
  2316. CALCULATION WILL NOT GIVE AN ADDRESS <$200 IN BANK 1.
  2317.  
  2318. ╨SEUDO-CODE:
  2319.  
  2320. FIRST CALCULATE EFFECTIVE BANK (ONLY NECESSARY ON ├-128)
  2321.     IF ADDRESS IS LESS THAN $200, IS ┬ANK 0.
  2322.     IF APP├ONFIG ┬6 = 1 THEN    (╬╧╘┼: IGNORE ┬7)
  2323.         (BANK 1 IS ENABLED, BUT WE MUST CHECK RAM SHARING)
  2324.         IF ADDRESS HIGH BYTE >= $80
  2325.             IF APP╥├╥ ┬3 = 1
  2326.                 USE LOOKUP TABLE FOR APP╥├╥ ┬1-┬0:
  2327.                     00    $╞├
  2328.                     01    $╞0
  2329.                     10    $┼0
  2330.                     11    $├0
  2331.                 IF ADDRESS HIGH BYTE < THIS VALUE, IS BANK 1
  2332.                 ELSE IS BANK 0
  2333.             ELSE IS BANK 1
  2334.         ELSE (ADDRESS HIGH BYTE < $80)
  2335.             IF APP╥├╥ ┬2 = 1
  2336.                 USE LOOKUP TABLE FOR APP╥├╥ ┬1-┬0:
  2337.                     00    $04
  2338.                     01    $10
  2339.                     10    $20
  2340.                     11    $40
  2341.                 IF ADDRESS HIGH BYTE >= THIS VALUE, IS BANK 1
  2342.                 ELSE IS BANK 0
  2343.             ELSE IS BANK 1
  2344.     ELSE IS BANK 0
  2345.  
  2346. ╘╚┼╙┼ ┬╔╘ ╬╒═┬┼╥╙ ╚┴╓┼ ├╚┴╬╟┼─
  2347. ╘HEN USE TABLE TO DETERMINE WHAT TO DO WITH THAT ADDRESS, CONSIDERING THE
  2348. MACHINE, MONITOR TYPE, AND BANK DESIRED.
  2349.     IF USING MINI DEBUGGER
  2350.         CALL TABLE LOOKUP ROUTINE, USING ═╔╬╔ ╥┴═ ┴──╥┼╙╙ ╘┴┬╠┼
  2351.         IF IN ├64 MODE:
  2352.             USE ┬5-┬3 OF RETURN BYTE TO DECIDE WHAT TO DO.
  2353.         ELSE (├128 MODE):
  2354.             USE ┬2-┬0 OF RETURN BYTE TO DECIDE WHAT TO DO.
  2355.  
  2356.     IF USING SUPER DEBUGGER:
  2357.         CALL TABLE LOOKUP ROUTINE, USING ═╔╬╔ ╥┴═ ┴──╥┼╙╙ ╘┴┬╠┼
  2358.         IF IN ├64 MODE:
  2359.             USE ┬5-┬3 OF RETURN BYTE TO DECIDE WHAT TO DO.
  2360.         ELSE (├128 MODE):
  2361.             IF SUPER DEBUGGER
  2362.                 IF ACCESSING BANK 1
  2363.                     USE ┬2-┬0 OF RETURN WORD
  2364.                 IF ACCESSING BANK 0
  2365.                     USE ┬8-┬6 OF RETURN WORD
  2366.             IF BACKRAM SUPER DEBUGGER
  2367.                 IF ACCESSING BANK 1
  2368.                     USE ┬11-┬9 OF RETURN WORD
  2369.                 IF ACCESSING BANK 0
  2370.                     USE ┬14-┬12 OF RETURN WORD
  2371.  
  2372. ╘HIS DECISION TREE SEEMS FAIRLY COMPLICATED, BUT IT BREAKS DOWN PRETTY WELL
  2373. IN THE CODE.
  2374.  
  2375.  
  2376.  
  2377.             ╟ENERAL ═EMORY ╨ROTECT ═AP
  2378.             --------------------------
  2379.  
  2380.                     ├64 ═ODE.......    ├128 ═ODE..............
  2381. ═EMORY RANGE    USAGE / ╟┼╧╙ EQUATE    ╥┴═    ╔╧    ╥┴═ ┬1    ╥┴═ ┬0    ╔╧
  2382. -------------    -----------------------    -------    -------    -------    -------    -------
  2383. $0000         *    ├╨╒_──╥ 6510 ──╥    ALL CASES: ╥/╥    ALL CASES: ╥/╥
  2384. $0001          *    ├╨╒_─┴╘┴ 6510 DATA PORT    <-> APP═EM═AP    <-> APP├╨╒_┬21+APP═EM═AP
  2385.  
  2386. $0002 - $00── *    ZERO PAGE (MON SWAPS)    ┌/┌    NA    NA    ┌/┌/┌    NA
  2387. $00─┼ - $00╞╞    ZERO PAGE        ─/─    NA    NA    ─/─/─    NA
  2388. $0100 - ╙╨    *    STACK (MONITOR USES)    ╪/╪    NA    NA    ╪/╪/╪    NA
  2389. ╙╨+1  - $01╞╞    STACK (USER'S DATA)    ─/─    NA    NA    ─/─/─    NA
  2390.  
  2391. $0200 - $0313    RAM            ─/─    NA    ─/─/─    ─/─/─    NA
  2392. $0314 - $0319 *    BAS╔╥╤╓EC, ┬╥╦, ╬═╔    ╥/╥    NA    ─/─/─    ╥/╥/╥    NA
  2393. $031┴ - $0333    RAM            ─/─    NA    ─/─/─    ─/─/─    NA
  2394. $0334 - $03╞┬ *    MONITOR CODE        ╪/╪    NA    ╪/╪/╪    ╪/╪/╪    NA
  2395. $03╞├ - $03╞╞    MONITOR ╩╙╥ AREA    ─/─    NA    ─/─/─    ─/─/─    NA
  2396.  
  2397. $0400 - $1╞╞╞ *    RAM            ─/╙    NA    ─/╙/─    ─/─/─    NA
  2398. $2000 - $3┬╞╞ *    RAM             ─/╙    NA    ─/╙/─    ─/─/┬    NA
  2399. $3├00 - $3╞╞╞ *    RAM             ═/╙    NA    ═/╙/─    ─/─/┬    NA
  2400. $4000 - $5╞╞╞ *    RAM (┬╟ SCREEN)        ═/╙    NA    ═/╙/─    ─/─/┬    NA
  2401. $6000 - $78╞╞ *    RAM            ─/╙    NA    ─/╙/─    ─/─/┬    NA
  2402. $7900 - $8┬╞╞ *    RAM            ─/─    NA    ─/─/─    ─/─/┬    NA
  2403. $8├00 - $8╞┼7 *    ├╧╠╧╥_═┴╘╥╔╪ / RAM    ─/─    NA    ─/─/─    ─/─/┬    NA
  2404. $8╞┼8 - $8╞╞╞ *    RAM            ─/─    NA    ─/─/─    ─/─/┬    NA
  2405. $9000 - $9╞╞╞ *    RAM            ─/─    NA    ─/─/─    ─/─/┬    NA
  2406. $┴000 - $┬╞╞╞    RAM (╞╟ SCREEN)        ─/─    NA    ─/─/─    ─/─/─    NA
  2407. $├000 - $├╞╞╞    RAM            ─/─    NA    ─/─/─    ─/─/─    NA
  2408.  
  2409. $─000 - $─010    IO: ╓╔├ REGS        ─/─    ─/─    ─/─/─    ─/─/─    ─/─/─
  2410. $─011         *    IO: ╓╔├ GRCTRL1        ─/─    APP╓╔├1    ─/─/─    ─/─/─    APP╓╔├1
  2411. $─012 - $─014    IO: ╓╔├ REGS        ─/─    ─/─    ─/─/─    ─/─/─    ─/─/─
  2412. $─015         *    IO: ╓╔├ MOBENBLE    ─/─    APP╓╔├2    ─/─/─    ─/─/─    APP╓╔├2
  2413. $─016         *    IO: ╓╔├ GRCTRL2        ─/─    APP╓╔├3    ─/─/─    ─/─/─    APP╓╔├3
  2414. $─017        IO: ╓╔├ REG        ─/─    ─/─    ─/─/─    ─/─/─    ─/─/─
  2415. $─018         *    IO: ╓╔├ GRMEMPTR    ─/─    APP╓╔├4    ─/─/─    ─/─/─    APP╓╔├4
  2416. $─019 - $─020    IO: ╓╔├ REGS        ─/─    ─/─    ─/─/─    ─/─/─    ─/─/─
  2417. $─021         *    IO: ╓╔├ BAKCLR0        ─/─    APP╓╔├5    ─/─/─    ─/─/─    APP╓╔├5
  2418. $─022 - $─02╞    IO: ╓╔├ REGS        ─/─    ─/─    ─/─/─    ─/─/─    ─/─/─
  2419. $─030         *    IO: ├128 2═╚┌ CTRL    ─/─    ─/─    ─/─/─    ─/─/─    APP├LK
  2420. $─031 - $─4╞╞    RAM / IO / ROM        ─/─    ─/─    ─/─/─    ─/─/─    ─/─/─
  2421. $─500         *    IO: ├128 ══╒ CONTROL    ─/─    ─/─    ─/─/─    ─/─/─    APP├ONFG
  2422. $─501 - $─504    IO: ├128 ══╒ REGS    ─/─    ─/─    ─/─/─    ─/─/─    ─/─/─
  2423. $─505         *    IO: ├128 ══╒ ═├╥    ─/─    ─/─    ─/─/─    ─/─/─    ╥/╥/╥
  2424. $─506         *    IO: ├128 ══╒ "╥├╥"    ─/─    ─/─    ─/─/─    ─/─/─    APP╥├╥*1
  2425. $─507 - $─50┴ *    IO: ├128 ══╒ ┌╨ RELOC    ─/─    ─/─    ─/─/─    ─/─/─    ╥/╥/╥
  2426. $─50┬ - $─7╞╞    RAM / IO / ROM        ─/─    ─/─    ─/─/─    ─/─/─    ─/─/─
  2427. $─800 - $─┬╞╞ *    IO: TEXT COLORS "CTAB"    ─/─    ╥/╥    ─/─/─    ─/─/─    *2*
  2428. $─├00 - $─├╞╞    RAM / IO / ROM        ─/─    ─/─    ─/─/─    ─/─/─    ─/─/─
  2429. $──00         *    IO: CIA2BASE (╓╔├ MMAP)    ─/─ APP├╔┴2_┬10    ─/─/─    ─/─/─    *3*
  2430. $──01 - $─┼╞╞    RAM / IO / ROM        ─/─    ─/─    ─/─/─    ─/─/─    ─/─/─
  2431. $─╞00 - $─╞09 *    IO: ╥┼╒ ─═┴ CONTROL    ─/─    ╥/╥    ─/─/─    ─/─/─    ╥/╥/╥
  2432. $─╞0┴ - $─╞╞╞    RAM / IO / ROM        ─/─    ─/─    ─/─/─    ─/─/─    ─/─/─
  2433.  
  2434. $┼000 - $┼╞╞╞    RAM / ROM        ─/─    NA    ─/─/─    ─/─/─    NA
  2435. $╞000         *    ├128: CONFIG REGISTER    ─/─    NA    ALL CASES: <-> APP├ONFIG
  2436. $╞001 - $╞╞╞9    RAM / ROM        ─/─    NA    ─/─/─    ─/─/─    NA
  2437. $╞╞╞┴ - $╞╞╞╞ *    ╬═╔_╓┼├╘╧╥, ╥┼╙┼╘, ╔╥╤    ╥/╥    NA    ╥/╥/╥    ╥/╥/╥    NA
  2438. -------------    -----------------------    -------    -------    -------    -------    -------
  2439.  
  2440. ┴SSUMPTIONS:
  2441.     ╥╧═ DECODED SEPARATELY
  2442.     ADDRESS DECODE FOR RAM BANK SHARING ALREADY WORKED OUT
  2443.  
  2444. CAN SIMPLIFY TABLE A BIT WITH .IF ═╔╬╔
  2445.  
  2446. ╬╧╘┼ 1: IN 128 MODE, $─506 IS SPLIT UP BETWEEN APP╥├╥_┬76 (╓╔├ BANK INFO)
  2447. AND APP╥├╥_┬50 (MEMORY MAP INFO).
  2448.  
  2449. ╬╧╘┼ 2: THE TEXT SCREEN COLOR TABLE IS LOCATED AT $─800-$─┬╞╞.
  2450. ╔N ├64 MODE, WE ONLY ALLOW READS FROM THIS AREA, SO THE USER WON'T SCREW
  2451. UP THE MONITOR'S TEXT COLORS.
  2452. ╔N ├128 MODE, THERE ARE ACTUALLY TWO COLOR TABLES AT THIS LOCATION.
  2453. ┬IT 1 OF $0001 DETERMINES WHICH IS VISIBLE TO THE 6510. ╔F THIS BIT IS
  2454. CLEAR, WE ALLOW DIRECT READ/WRITES. ╔F THIS BIT IS SET, WE ONLY ALLOW READS.
  2455.  
  2456. ╬╧╘┼ 3: BITS 1-0 OF LOCATION $──00 CONTROL WHICH 16╦ MEMORY BANK THE ╓╔├
  2457. CHIP USES, AND SO ARE SAVED IN APP├╔┴_┬10. ╘HE OTHER BITS (7-2) ARE WRITTEN TO/
  2458. READ FROM MEMORY. ├AUTION ERIC: IN ├64 MODE, MAKE SURE ╔╧ IS IN WHEN DOING THIS.
  2459.  
  2460. ╫ARN IN MANUAL THAT WE DO NOT ALLOW BLEED-THROUGH. ╘HEY WILL HAVE TO SWAP
  2461. RAM IN MANUALLY TO CHANGE IT. ╘HIS MEANS WE CAN'T USE A SINGLE ═╧╓┼ COMMAND
  2462. TO COPY ROM TO RAM...
  2463.  
  2464.  
  2465. ╟EO─EBUGGER HAS LIMITED SUPPORT FOR THE CREATION AND DEBUGGING OF
  2466. ├┬═ APPLICATIONS. ╘HE ├128 DESK╘OP HAS SOME BUGS RELATED TO LOADING
  2467. ├┬═ APPLICATIONS.
  2468.  
  2469.  
  2470. ╟EO╨ROGRAMMER CURRENTLY SUPPORTS THE ASSEMBLY AND LINK OF:
  2471.     ╟┼╧╙ APPLICATIONS    (╙┼╤ OR ╓╠╔╥, WITH HEADER)
  2472.  
  2473.     ╟┼╧╙ DESK ACCESSORIES    (╙┼╤ BY DEFINITION, WITH HEADER)
  2474.  
  2475.     ├┬═ APPLICATIONS    STANDARD ├OMMODORE ╨╥╟ FILE
  2476.                 (╟┼╧╙ FILE TYPE = ╬╧╘_╟┼╧╙, DOES NOT HAVE
  2477.                 A HEADER BLOCK). ─ESK╘OP HAS RESTRICTIONS
  2478.                 ON WHICH LOAD ADDRESSES IT CAN HANDLE.
  2479.                 ├OMMODORE ┬┴╙╔├'S ╠╧┴─ AND ┬╧╧╘ COMMANDS
  2480.                 CAN LOAD MOST ADDRESSES OK. ╟EO─EBUGGER CAN
  2481.                 LOAD MOST ADDRESSES OK.
  2482.  
  2483. ╘HERE IS SOME AMOUNT OF SUPPORT IN THE DEBUGGER FOR LOADING AND DEBUGGING
  2484. ├┬═ APPLICATIONS.
  2485.     - CAN TOGGLE BETWEEN ANY KIND OF SCREEN THE ╓╔├ AND ╓─├ CHIPS
  2486.         SUPPORT
  2487.     - APP CAN TRASH ALL OF ╟┼╧╙ ADDRESS SPACE
  2488.  
  2489. ╨ROBLEMS:
  2490.     - ON ├128, DEBUGGER CAN ONLY LOAD A ├┬═ APP TO BANK 1, WHEREAS
  2491.     ┬┴╙╔├ EXPECTS SUCH AN APPLICATION TO RUN IN BANK 0. ┼ITHER WRITE
  2492.     YOUR APPLICATION TO RUN IN EITHER BANK (SEE ╙AMPLE├┬═), OR USE
  2493.     A CONSTANT SO YOU CAN ASSEMBLE IT TO RUN IN EITHER BANK.
  2494.  
  2495.     - ╘HE DEBUGGER DOES NOT DO ANY ERROR CHECKING ON THE LOAD ADDRESS
  2496.     OF A ├┬═ APPLICATION. ╔T WILL CRASH IF YOU TRY TO LOAD AN APP
  2497.     BELOW $400. ┴PPLICATION CANNOT LOAD ABOVE THE $8000 AREA.
  2498.  
  2499.     - ╟EO─EBUGGER FILLS THE TEXT COLOR TABLE ONCE. ╔F THE ├┬═ APPLICATION
  2500.     FILLS THE TEXT COLOR TABLE (TABLE #1 ON THE 128), THE DEBUGGER'S
  2501.     CHARACTERS WILL BE COLORED. ╔F THE ├┬═ APP FILLS WITH $0┬, THE
  2502.     DEBUGGER CHARACTERS WILL BE INVISIBLE, SINCE THE DEBUGGER SETS THE
  2503.     BACKGROUND TO $0┬.
  2504.     
  2505.     - IF THE ├┬═ APP PUTS UP A SCREEN WHICH RESIDES IN THE $0400-$7╞╞╞ AREA,
  2506.     THEN YOU WILL NOT BE ABLE TO VIEW IT FROM THE SUPER DEBUGGER USING ╞7
  2507.     OR ╞8. ╘HIS IS BECAUSE THESE COMMANDS DO NOT SWAP THE DEBUGGER CODE OUT
  2508.     OF THIS AREA: THE ╓╔├ CHIP WILL BE GIVEN THE CORRECT PARAMETERS, BUT IT
  2509.     WILL BE DISPLAYING DEBUGGER CODE INSTEAD OF THE APPLICATION'S SCREEN
  2510.     DATA.
  2511.     
  2512. ╫ITH A LITTLE BIT OF WORK, YOU CAN GET GEO┴SSEMBLER AND GEO╠INKER TO GENERATE:
  2513.  
  2514. ┴SSEMBLY-╔N-┬ASIC PROGRAM ┴ (╨╥╟-╬╧╘_╟┼╧╙) APPLICATION WHICH LOOKS LIKE A
  2515. ┬┴╙╔├ PROGRAM, BUT REALLY ONLY HAS SEVERAL LINES OF ┬┴╙╔├. ╥EMAINDER IS
  2516. ASSEMBLY CODE.
  2517.  
  2518. ╙┼╤ DATAFILE: AS IF WAS CREATED BY ┬┴╙╔├. ├REATE A ╟┼╧╙ ╙┼╤ FILE, THEN
  2519. CHANGE THE ├OMMODORE AND ╟┼╧╙ FILE TYPE BYTES.
  2520.  
  2521. ╟┼╧╙ APPLICATION DATAFILE: AS IF WAS CREATED BY A ╟┼╧╙ APPLICATION.
  2522. ├REATE A ╟┼╧╙ ╙┼╤ FILE, THEN CHANGE THE ╟┼╧╙ FILE TYPE BYTE.
  2523.  
  2524. ╔N A SIMILAR MANNER, YOU CAN USE ╟EO─EBUGGER TO EXAMINE A WIDE VARIETY
  2525. OF DIFFERENT FILE TYPES. ┬UT FIRST, YOU MUST CHANGE THE ├OMMODORE
  2526. AND/OR ╟┼╧╙ FILE TYPE BYTE, AND THE LOAD ADDRESS IN THE HEADER BLOCK.
  2527.  
  2528.  
  2529. ╞UTURE ╟EO╨ROGRAMMER IDEAS:
  2530.  
  2531. ╟ENERATE ├┬═ ┴PPLICATION WITH HEADER:
  2532. ┼SSENTIALLY A ├┬═ ASSEMBLY-LANGUAGE PROGRAM, BUT WITH A ╟┼╧╙ HEADER.
  2533. ╫OULD SAVE THE ╔CON ┼DITOR STEP CURRENTLY REQUIRED.
  2534.  
  2535.  
  2536.  
  2537.         ╙PECIFICATION OF "HIDE DEBUG SCREEN MODE"
  2538.  
  2539.  
  2540. ╞7 IS PRESSED:
  2541.     ╘╧╟╟╠┼ ╙├╥┼┼╬:
  2542.         SHOW ╒╙┼╥ SCREEN
  2543.         WAIT FOR PRESS
  2544.         SHOW ─┼┬╒╟ SCREEN
  2545.     IF ═╔╬╔:
  2546.         PLACE CURSOR ON LEFT
  2547.         PRINT PROMPT
  2548.         PRINT INPUT LINE AS IT WAS
  2549.     LOOP FOR NEXT CHARACTER
  2550.  
  2551.  
  2552. ╞8 IS PRESSED:
  2553.     IF HIDDEN = ╞┴╠╙┼
  2554.         ┼╬┴┬╠┼ ╙╚╧╫ ═╧─┼:
  2555.             CALL ╘OGGLE╙CREEN TO SWITCH USER
  2556.                 PARAMETERS TO HARDWARE
  2557.             SET HIDE─EBUG╙CREEN = ╘╥╒┼
  2558.         LOOP FOR NEXT CHARACTER
  2559.     IF HIDDEN = ╘╥╒┼
  2560.         ─╔╙┴┬╠┼ ╙╚╧╫ ═╧─┼:
  2561.             SET HIDE─EBUG╙CREEN = ╞┴╠╙┼
  2562.             CALL ╘OGGLE╙CREEN TO SWITCH USER PARAMETERS
  2563.                 TO SHADOWS, AND DISPLAY DEBUGGER SCREEN
  2564.         IF IN LEFT-SIDE COMMAND MODE
  2565.             (MUST REPRINT LINE BECAUSE NOTHING HAS BEEN PRINTED)
  2566.             PLACE CURSOR ON LEFT
  2567.             PRINT PROMPT
  2568.             PRINT INPUT LINE AS IT WAS
  2569.         IF NOT IN LEFT-SIDE COMMAND MODE
  2570.             CANCEL OPEN MODE / DEPOSIT MODE
  2571.             PRINT PROMPT
  2572.         LOOP FOR NEXT CHARACTER
  2573.  
  2574.  
  2575.         ╚OW ╟EO─EBUGGER ╚ANDLES ╔╥╤ ╔NTERRUPTS
  2576.         --------------------------------------
  2577.  
  2578. ╔F YOU ARE WRITING A NORMAL ╟┼╧╙ APPLICATION, THEN YOU DO NOT HAVE TO READ
  2579. THE FOLLOWING INFORMATION. ┘OU CAN SKIP AHEAD TO THE SECTION TITLED
  2580. "╙TRAY ╔NTERRUPT "╘╥┴╨" ╞ACILITY". ╔F YOU ARE WRITING A NON-╟┼╧╙ APPLICATION
  2581. WHICH SETS UP ITS OWN INTERRUPT SERVICE ROUTINE, THIS INFORMATION IS VITAL;
  2582. YOUR PROGRAM WILL NOT RUN CORRECTLY UNDER ╟EO─EBUGGER UNLESS YOU FOLLOW THESE
  2583. INSTRUCTIONS. ╬OTE: ╔╙╥ STANDS FOR ╔NTERRUPT ╙ERVICE ╥OUTINE.
  2584.  
  2585. ╫HEN ╟EO─EBUGGER IS RUNNING A USER APPLICATION, IT INSERTS A SMALL WEDGE
  2586. ROUTINE IN PLACE OF THE NORMAL ╔╙╥ (WHICH IN MOST CASES WILL BE THE ╟┼╧╙ ╔╙╥).
  2587. ╘HIS WEDGE FIRST CHECKS IF THE ╔╥╤ INTERRUPT WAS GENERATED BY THE ╔╥╤ LINE OR A
  2588. ┬╥╦ INSTRUCTION. ╔F IT WAS A ┬╥╦ INSTRUCTION, THE WEDGE EXECUTES THE APPROPRIATE
  2589. MONITOR. ╔F THE INTERRUPT WAS AN ╔╥╤, THE WEDGE CALLS THE EXISTING ╔╙╥.
  2590. ╘HUS: THE DEBUGGER IS ABLE TO MONITOR THE ╔╥╤/┬╥╦ EVENTS, WITHOUT INTERFERING
  2591. WITH REGULAR INTERRUPT SERVICING THAT IS VITAL TO MOST APPLICATIONS.
  2592.  
  2593. ╘O INSERT THIS WEDGE ROUTINE INTO THE INTERRUPT SEQUENCE, ╟EO─EBUGGER MUST
  2594. FIRST EXAMINE THE ╔╥╤ VECTOR AT LOCATION $╞╞╞┼, TO SEE WHERE THE CURRENT ╔╙╥
  2595. IS LOCATED. ╔T THEN MUST MODIFY THIS VECTOR SO IT WILL POINT TO THE ╟EO─EBUGGER
  2596. WEDGE ROUTINE WHICH IS LOCATED IN THE $0334 AREA.
  2597.  
  2598. ╔F YOU ARE WRITING A NON-╟┼╧╙ APPLICATION WHICH SETS UP ITS OWN ╔╙╥, THEN YOU
  2599. WILL PROBABLY WE SETTING THE ╔╥╤ VECTOR AT SOME POINT DURING YOUR INITIALIZATION
  2600. CODE. ╔N ORDER FOR YOUR APPLICATION TO RUN UNDER ╟EO─EBUGGER, YOU MUST SET THIS
  2601. VECTOR CAREFULLY; BECAUSE IF YOUR APPLICATION IS RUNNING UNDER ╟EO─EBUGGER,
  2602. YOU NEED TO STORE THE ADDRESS OF YOUR ╔╙╥ TO A VECTOR IN THE ╟EO─EBUGGER WEDGE
  2603. CODE, ╬╧╘ TO THE ╔╥╤ VECTOR.
  2604.  
  2605. ┬ELOW IS A ROUTINE WHICH YOU CAN INSERT INTO YOUR PROGRAM TO SET UP THE 
  2606. APPROPRIATE VECTOR TO YOUR ╔╙╥. ╬OTE THAT THIS ROUTINE ASSUMES THAT YOUR
  2607. APPLICATION WILL ONLY ALLOW INTERRUPTS WHEN THE MEMORY MAP IS CONFIGURED AS A
  2608. STANDARD ╟┼╧╙ MEMORY MAP. ╧N THE ├64, THIS MEANS ALL ╥┴═, AND ON THE ├128,
  2609. THIS MEANS ALL BANK 1 ╥┴═, NO ╥╧═. ╔F YOUR APPLICATION IS GOING TO ALLOW
  2610. INTERRUPTS IN OTHER MEMORY MAP CONFIGURATIONS, USE THE "╔NTERRUPT ╚ANDLING
  2611. ╥EFERENCE ╬OTES" SECTION OF THIS DOCUMENT TO CUSTOMIZE THIS INSTALLATION
  2612. ROUTINE.
  2613.  
  2614. ╔NSERT THE FOLLOWING CONSTANTS AND SUBROUTINE INTO THE INITIALIZATION PHASE
  2615. OF YOUR APPLICATION, FOR IT TO RUN PROPERLY UNDER ╟EO─EBUGGER.
  2616.  
  2617. ╔N THE CONSTANT DEFINITION PORTION OF YOUR PROGRAM:
  2618.  
  2619. ─┼╓┼╠╧╨═┼╬╘    = ╘╥╒┼        ;╙ET TO ╘╥╒┼ IF YOU SOMETIMES RUN THIS
  2620.                 ;APPLICATION UNDER ╟EO─EBUGGER ╓2.0,
  2621.                 ;AND RUN IT UNDER THE DESK╘OP OTHER TIMES.
  2622.                 ;╙ET TO ╞┴╠╙┼ IF YOU WILL NEVER RUN THIS
  2623.                 ;APPLICATION UNDER ╟EO─EBUGGER ╓2.0.
  2624. ╘O╔NT╙VC    = $0367        ;┴DDRESS OF ╟EO─EBUGGER VECTOR WE MODIFY
  2625.  
  2626.  
  2627.  
  2628. ╔N THE INITIALIZATION PORTION OF YOUR PROGRAM:
  2629.  
  2630. ;*************************************************************************
  2631. ;                ╔NIT╔NT╙VC
  2632. ;
  2633. ;    ╘HIS ROUTINE MODIFIES THE ╔╥╤ VECTOR, SO THAT THE USER'S INTERRUPT
  2634. ;    SERVICE ROUTINE IS CALLED INSTEAD OF THE ╟┼╧╙ INTERRUPT SERVICE ROUTINE.
  2635. ;    ╘HIS ROUTINE CAN ASSEMBLE ONE OF TWO WAYS, DEPENDING UPON THE
  2636. ;    VALUE OF THE CONSTANT CALLED "─┼╓┼╠╧╨═┼╬╘".
  2637. ;
  2638. ;    ┴SSUMPTIONS:
  2639. ;    1) ╘HAT THE STANDARD ╟┼╧╙ MEMORY MAP IS PRESENT WHEN THIS ROUTINE RUNS.
  2640. ;    2) ╘HAT YOUR APPLICATION DOES NOT DO ANYTHING WEIRD SUCH AS ALLOWING
  2641. ;    INTERRUPTS WHEN HIGH-MEMORY ╥╧═ OR ╥┴═ BANK 0 (ON THE ├128) IS
  2642. ;    SWAPPED IN.
  2643. ;
  2644. ;    ╙IDE-EFFECTS:
  2645. ;    1) ╔F THE FOLLOWING SCENARIO APPLIES:
  2646. ;        - YOU ARE WRITING A NON-╟┼╧╙ APPLICATION FOR THE ├64
  2647. ;        - WHICH TRIES TO DISABLE INTERRUPTS WHEN ╥╧═ IS IN
  2648. ;        - YOU RUN IT UNDER ╟EO─EBUGGER
  2649. ;        - YOUR PROGRAM SWAPS ╦ERNAL ╥╧═ IN, WITHOUT PROPERLY
  2650. ;            DISABLING INTERRUPTS
  2651. ;        - AN INTERRUPT OCCURS
  2652. ;    ...THEN ╟EO─EBUGGER ╫╔╠╠ PROPERLY RUN YOUR ╔╙╥, WITHOUT GIVING
  2653. ;    YOU ANY WARNING THAT THERE IS A BUG IN YOUR PROGRAM, AND THAT IT
  2654. ;    WOULD HAVE CRASHED IF IT WAS NOT RUN UNDER ╟EO─EBUGGER.
  2655. ;
  2656. ;    ┴UTHOR:        ┼RIC ┼. ─EL ╙ESTO    ┴PRIL 1988
  2657. ;    ├ALLED BY:    INITIALIZATION CODE
  2658. ;    ╨ASS:        NOTHING
  2659. ;    ╥ETURNS:    NOTHING
  2660. ;    ┴LTERS:        ACCUMULATOR AND FLAGS
  2661. ;
  2662. ;************************************************************************
  2663. ╔NIT╔NT╙VC:
  2664.     SEI                ;DISABLE INTERRUPTS
  2665.  
  2666. .IF    ─┼╓┼╠╧╨═┼╬╘    ;------------------------------------------------
  2667. ;┴SSEMBLE THE FOLLOWING CODE WHEN YOU WANT YOUR APPLICATION TO RUN CORRECTLY
  2668. ;UNDER ╟EO─EBUGGER ╓2.0.
  2669.  
  2670.     LDA    ╔╥╤_╓┼├╘╧╥+1        ;CHECK HIGH BYTE OF EXISTING ╔╥╤ VECTOR
  2671.                     ;TO SEE IF WE ARE RUNNING UNDER DEBUG.
  2672.     BMI    50$            ;SKIP IF NOT...
  2673.  
  2674.     ;WE ARE RUNNING UNDER ╟EO─EBUGGER: MUST STORE OUR ╔╥╤ VECTOR TO
  2675.     ;THE ╟EO─EBUGGER CODE IN THE $0334 AREA. ╔F RUNNING IN ├128 MODE,
  2676.     ;THIS ONLY MODIFIES THE WEDGE CODE IN BANK 1, WHICH IS SUFFICIENT.
  2677.  
  2678.     ╠OAD╫    ╘O╔NT╙VC,#═Y╔NT╙VC
  2679.     CLI                ;ENABLE INTERRUPTS
  2680.     RTS                ;ALL DONE
  2681.  
  2682. 50$:    ;WE ARE NOT RUNNING UNDER ╟EO─EBUGGER: SET UP NEW ╔╥╤ VECTOR
  2683.     ;IN NORMAL FASHION.
  2684. .ENDIF    ;(─┼╓┼╠╧╨═┼╬╘)---------------------------------------------------
  2685.  
  2686. ;┴T THIS POINT, WE KNOW THAT EITHER THE APPLICATION IS NOT RUNNING UNDER
  2687. ;╟EO─EBUGGER, OR THAT WE DON'T EXPECT IT TO RUN UNDER ╟EO─EBUGGER (THE CASE
  2688. ;WHERE ─┼╓┼╠╧╨═┼╬╘ = ╞┴╠╙┼). ╔NTERRUPTS HAVE ALREADY BEEN DISABLED ABOVE.
  2689. ;╙ET UP THE ╔╥╤ VECTOR AT $╞╞╞┼ TO POINT TO NEW SERVICE ROUTINE. ╬OTE THAT
  2690. ;IN ├128 MODE, THIS ONLY AFFECTS THE ╔╥╤ VECTOR IN BANK 1 ╥┴═.
  2691.  
  2692.     ╠OAD╫    ╔╥╤_╓┼├╘╧╥,#═Y╔NT╙VC
  2693.     CLI                ;ENABLE INTERRUPTS
  2694.     RTS                ;ALL DONE
  2695.  
  2696.  
  2697.  
  2698.             ╙TRAY ╔NTERRUPT "╘╥┴╨" ╞ACILITY
  2699.             -------------------------------
  2700.  
  2701. ┘OU WOULD EXPECT THAT AN APPLICATION WHICH OFTEN HAS TO SWAP IN THE ╦ERNAL ╥╧═
  2702. WOULD BE CAREFUL TO DISABLE INTERRUPTS DURING THESE OPERATIONS. ╘HIS IS TO
  2703. PREVENT THE CASE WHERE AN ╔╥╤ OCCURS AND ╟┼╧╙ INTERRUPT CODE HAS BEEN SWAPPED
  2704. OUT OF THE MEMORY MAP. ╧FTEN, IT IS EASY FOR SUCH A PROVISION TO BE LEFT OUT
  2705. IN THE INITIAL IMPLEMENTATION OF A PROGRAM. ╘O CATCH THESE HARD-TO-FIND BUGS,
  2706. ╟EO─EBUGGER HAS A "STRAY ╔╥╤ TRAP" FACILITY.
  2707.  
  2708. ╘HIS FACILITY SERVES TO WARN YOU WHEN AN INTERRUPT HAPPENS AND THE MEMORY MAP
  2709. IS CONFIGURED IN A MANNER YOU DID NOT EXPECT.
  2710.  
  2711. ╔F YOU ARE RUNNING A ╟┼╧╙ APPLICATION (WITH NORMAL ╟┼╧╙ INTERRUPTS), THEN THIS
  2712. FACILITY WILL STOP PROGRAM EXECUTION AND DISPLAY THE "*** ┼XECUTION STOPPED ***"
  2713. MESSAGE WHEN AN ╔╥╤ OCCURS AND THE ╦ERNAL ╥╧═ IS SWAPPED IN. ┘OU CAN EXAMINE
  2714. THE ╨├ REGISTER TO SEE WHICH OF YOUR ROUTINES WAS EXECUTING WHEN THE ╔╥╤
  2715. OCCURRED, AND CAN ADD INTERRUPT-DISABLING CODE WHERE NECESSARY.
  2716.  
  2717. ╔F YOU ARE WRITING A NON-╟┼╧╙ APPLICATION WHICH RUNS ON THE ├128, AND SETS UP
  2718. ITS OWN INTERRUPT SERVICE ROUTINE, YOU WILL PROBABLY DESIGN IT SO INTERRUPTS
  2719. ARE ENABLED ONLY WHEN THE MEMORY IF CONFIGURED IN A SPECIFIC WAY. ╚ERE ARE
  2720. SEVERAL EXAMPLES OF ASSERTIONS YOU MIGHT FIND IN SUCH AN APPLICATION:
  2721.  
  2722.     - "╔ WILL ONLY ALLOW INTERRUPTS WHEN BANK 1 ╥┴═ IS MAPPED IN."
  2723.     - "╔ WILL ONLY ALLOW INTERRUPTS WHEN BANK 0 ╥┴═ OR ╥╧═ IS MAPPED IN."
  2724.  
  2725. ┬Y REFERING TO THE "╔NTERRUPT ╚ANDLING ╥EFERENCE ╬OTES" SECTION OF THIS
  2726. DOCUMENT, AND ADDING SOME CODE TO THE INITIALIZATION PORTION OF YOUR PROGRAM,
  2727. YOU CAN ALTER THE WEDGE CODE SO THAT A ╘╥┴╨ IS PRODUCED IF AN INTERRUPT
  2728. OCCURS WHEN THE MEMORY MAP IS IN AN UNEXPECTED CONFIGURATION.
  2729.  
  2730. (╔S IT POSSIBLE TO CONTINUE PROGRAM EXECUTION AT THIS POINT???)
  2731.  
  2732.  
  2733.  
  2734.         ╔NTERRUPT ╚ANDLING ╥EFERENCE ╬OTES
  2735.  
  2736. ╔F YOU ARE WRITING A NON-╟┼╧╙ APPLICATION, THE FOLLOWING TABLES PROVIDE
  2737. USEFUL REFERENCE INFORMATION ABOUT THE VECTORS IN ╟EO─EBUGGER'S WEDGE
  2738. CODE. ┬Y ADDING CODE TO YOUR APPLICATION WHICH CHANGES THESE VECTORS,
  2739. YOU CAN GET YOUR INTERRUPT SERVICE ROUTINE TO WORK WHEN YOUR APPLICATION
  2740. IS RUNNING UNDER ╟EO─EBUGGER. ┘OU CAN ALSO SET THESE VECTORS SO THAT A ╘╥┴╨
  2741. OCCURS IF AN INTERRUPT HAPPENS WHEN THE MEMORY MAP IS SUCH THAT YOUR
  2742. APPLICATION WOULD CRASH.
  2743.  
  2744.                 ├64 ═ODE
  2745.                 --------
  2746.  
  2747. ╠ABEL        ┴DDR    ╬ORMAL ├ONTENTS            ═ODIFIED ├ONTENTS
  2748. ---------------    -------    -------------------------------    ------------------------
  2749. ╥OM╔╥╤_╓EC:    $0338    JMP ╘RAP╥╧═    4├ 45 03    JMP ╚ANDLE╔╥╤    4├ 5┼ 03
  2750.  
  2751. - AS IT STANDS, THIS LOCATION WILL CAUSE A ╘╥┴╨ WHENEVER AN ╔╥╤ HAPPENS
  2752. AND THE ╦ERNAL ╥╧═ IS MAPPED INTO HIGH MEMORY. ═ODIFY THIS LOCATION IF YOU WANT
  2753. EXECUTION TO CONTINUE TO THE ╘O╔NT╙VC VECTOR WHEN ╥╧═ IS MAPPED INTO HIGH
  2754. MEMORY. ╘HE ╘O╔NT╙VC VECTOR CAN THEN DIRECT EXECUTION TO YOUR ╔╙╥.
  2755.  
  2756. ╘O╔NT╙VC:    $╪╪╪╪    JMP ╟EOS╔╙╥    4├ XX XX    JMP ┘OUR_╔╙╥    4├ ╠╠ ╚╚
  2757.                             -OR-
  2758.                             JMP ╘RAP╔╥╤    4├ ╪╪ ╪╪
  2759.  
  2760. - AS IT STANDS, THIS LOCATION DIRECTS EXECUTION TO THE ╟┼╧╙ ╔╙╥ WHEN AN
  2761. INTERRUPT OCCURS. ┘OU CAN MODIFY THIS VECTOR TO POINT TO YOUR OWN ╔╙╥,
  2762. OR FORCE A ╘╥┴╨ WHEN AN ╔╥╤ OCCURS. ╬OTE THAT IF ╥OM╔╥╤_╓EC POINTS TO ╚ANDLE╔╥╤,
  2763. THEN THE ╘O╔NT╙VC VECTOR HANDLES ALL ╔╥╤ INTERRUPTS, REGARDLESS OF WHETHER
  2764. ╥┴═ OR ╥╧═ IS IN.
  2765.  
  2766.  
  2767.                 ├128 ═ODE
  2768.                 ---------
  2769.  
  2770. ╠ABEL        ┴DDR    ╬ORMAL ├ONTENTS            ═ODIFIED ├ONTENTS
  2771. ---------------    -------    -------------------------------    ------------------------
  2772. (IN BANK 0)
  2773. ╥OM╔╥╤_╓EC:    ┬0$╪╪╪╪    JMP ╘RAP╥╧═    4├ ╪╪ ╪╪    JMP ╚ANDLE╔╥╤    4├ ╪╪ ╪╪
  2774.  
  2775. - AS IT STANDS, THIS LOCATION WILL CAUSE A ╘╥┴╨ WHENEVER AN ╔╥╤ HAPPENS
  2776. AND THE ╦ERNAL ╥╧═ IS MAPPED INTO HIGH MEMORY. ═ODIFY THIS LOCATION IN BANK 0
  2777. ╥┴═ IF YOU WANT EXECUTION TO CONTINUE TO THE ╘O╔NT╙VC VECTOR WHEN ╥╧═ IS MAPPED
  2778. INTO HIGH MEMORY. ╘HE ╘O╔NT╙VC VECTOR CAN THEN DIRECT EXECUTION TO YOUR ╔╙╥.
  2779.  
  2780. (IN BANK 0)
  2781. ╘O╔NT╙VC:    ┬0$╪╪╪╪    JMP ╟EOS╔╙╥    4├ XX XX    JMP ┘OUR_╔╙╥    4├ ╠╠ ╚╚
  2782.                             -OR-
  2783.                             JMP ╘RAP╔╥╤    4├ ╪╪ ╪╪
  2784.  
  2785. - AS IT STANDS, THIS LOCATION DIRECTS EXECUTION TO THE ╟┼╧╙ ╔╙╥ WHEN AN
  2786. INTERRUPT OCCURS ┴╬─ BANK 0 IS VISIBLE IN THE $0300 AREA. ┘OU CAN MODIFY THIS
  2787. VECTOR TO POINT TO YOUR OWN ╔╙╥, OR FORCE A ╘╥┴╨ WHEN SUCH AN ╔╥╤ OCCURS. ╬OTE
  2788. THAT IF ╥OM╔╥╤_╓EC POINTS TO ╚ANDLE╔╥╤, THEN THIS BANK 0 ╘O╔NT╙VC VECTOR
  2789. WILL ADDITIONALLY HANDLE ╔╥╤ INTERRUPTS WHICH OCCUR WHEN ╥╧═ IS MAPPED INTO
  2790. HIGH MEMORY.
  2791.  
  2792. (IN BANK 1)
  2793. ╘O╔NT╙VC:    ┬1$╪╪╪╪    JMP ╟EOS╔╙╥    4├ XX XX    JMP ┘OUR_╔╙╥    4├ ╠╠ ╚╚
  2794.                             -OR-
  2795.                             JMP ╘RAP╔╥╤    4├ ╪╪ ╪╪
  2796.  
  2797. - AS IT STANDS, THIS LOCATION DIRECTS EXECUTION TO THE ╟┼╧╙ ╔╙╥ WHEN AN
  2798. INTERRUPT OCCURS ┴╬─ BANK 1 IS VISIBLE IN THE $0300 AREA. ┘OU CAN MODIFY THIS
  2799. VECTOR TO POINT TO YOUR OWN ╔╙╥, OR FORCE A ╘╥┴╨ WHEN SUCH AN ╔╥╤ OCCURS.
  2800.  
  2801.  
  2802.             ╬═╔ (╥ESTORE KEY) ╔NTERRUPTS
  2803.  
  2804. ╫HEN ╟EO─EBUGGER IS EXECUTING USER CODE, WE SET UP THE ╬═╔ VECTORS SO THAT
  2805. THE ╥┼╙╘╧╥┼ KEY CAN STOP EXECUTION AT ANY POINT AND BRING US INTO THE
  2806. MONITOR. ╬OTE THAT THIS INVOLVES THREE ╬═╔ VECTORS: ┬1$╞╞╞┴, ┬0$╞╞╞┴,
  2807. AND ┬0$318 FOR ╬═╔S WHICH OCCUR WHEN ╥╧═ IS MAPPED INTO THE $FFFA AREA.
  2808.  
  2809. ╫HEN THE MONITOR IS RUNNING, WE SET UP THE CURRENT BANK'S $╞╞╞┴ ╬═╔ VECTOR
  2810. SO THAT THE USER CAN HIT THE ╥┼╙╘╧╥┼ KEY TO QUIT ANY OPERATION. ╘HIS IS
  2811. IMPLEMENTED AS "SET-FLAG AND POLL-FLAG-AND-STOP WHEN YOU CAN" SO THAT
  2812. CRUCIAL OPERATIONS (SUCH AS INSERTING A SYMBOL) ARE NOT INTERRUPTED.
  2813.  
  2814. ╘O SIMPLIFY MATTERS, WE DISABLE ╬═╔ INTERRUPTS DURING CONTEXT SWITCHING
  2815. (STARTING OR STOPPING AN APPLICATION). ╘HIS IS ACCOMPLISHED BY MODIFYING
  2816. THE WEDGE CODE SLIGHTLY SO THAT IF AN ╬═╔ OCCURS WHEN WE DON'T WANT IT TO,
  2817. THE WEDGE CODE IMMEDIATELY RETURNS. ╔N BOTH ├64 AND ├128 MODES, THERE IS
  2818. ONLY ONE LOCATION IN THE WEDGE CODE WHICH MUST BE MODIFIED. (╘HIS IS TRUE
  2819. ON THE 128 BECAUSE NO MATTER WHICH ENTRY POINT IS USED TO GET INTO THE WEDGE
  2820. CODE: ╥AM╬═╔_┬0, ╥AM╬═╔_┬1, OR ╥OM╬═╔_┬0, EXECUTION ENDS UP AT THE POINT
  2821. LABELED ╙KIP╘O╥ETURN IN THE WEDGE CODE IN BANK 1. ╘HEREFORE WE ONLY NEED TO
  2822. ALTER THE WEDGE CODE AT THAT POINT, AND NOT IN BOTH BANKS.)
  2823.  
  2824.  
  2825. ╬OTES:
  2826.  
  2827. 1) ╓1.0 ╟EO─EBUGGER USED TO DISABLE ╬═╔ INTERRUPTS DURING CALLS TO ╟┼╧╙
  2828. INTERRUPT CODE. ╘HE MOTIVATION FOR THIS IS THE IDEA THAT WHEN THE USER HITS
  2829. THE ╥┼╙╘╧╥┼ KEY, HE DOES NOT WANT TO STOP EXECUTION IN THE MIDDLE OF
  2830. ╟┼╧╙ INTERRUPT CODE. ╓2.0 ╟EO─EBUGGER DOES NOT DO THIS ANYMORE BECAUSE WE
  2831. DO NOT WANT TO LOCK-OUT THE ╥┼╙╘╧╥┼ KEY WHILE THE USER'S INTERRUPT SERVICE
  2832. ROUTINE IS RUNNING. ┴ND BESIDES, WHAT IS THE STOPMAIN COMMAND FOR ANYWAY?
  2833.  
  2834. 2) CONCERNING ╬═╔ BOUNCE:
  2835.     - WHEN THE ╥┼╙╘╧╥┼ KEY IS PRESSED, TWO ╬═╔ SIGNALS AREA GENERATED,
  2836.     ABOUT 150USEC APART.
  2837.  
  2838. 3) ├ONCERNING PREVENTING ╬═╔S WHICH IMMEDIATELY FOLLOW A ┬╥╦ INSTRUCTION:
  2839.     - WE HANDLE THIS CORRECTLY
  2840.  
  2841. 4) ╧N BOTH THE 64 AND 128, THE ├╔┴2 CHIP HAS THE CAPABILITY OF GENERATING
  2842. AN ╬═╔ SIGNAL. ╘O PREVENT THIS FROM OCCURING DURING DISK-ACCESS ROUTINES,
  2843. THE ╟┼╧╙ ╔NIT╞OR╔╧ ROUTINE FORCES THE ├╔┴2 TO GENERATE ONE INTERRUPT BY SETTING
  2844. THE TIMER VALUE TO A LOW NUMBER LIKE 1. ╔NIT╞OR╔╧ KNOWS THAT IT WILL GET CONTROL
  2845. WHEN THIS FORCED-╬═╔ OCCURS BECAUSE IT SWAPS THE KERNAL ╥╧═ INTO THE HIGH-
  2846. MEMORY AREA AND SETS THE KERNAL'S PAGE 3 ╬═╔ VECTOR (NMIVEC, $0318) TO POINT
  2847. TO A DUMMY ╬═╔ ROUTINE.
  2848.     - ON THE ├64, THIS WORKS FINE, EXCEPT FOR THE FACT THAT ╟EO─EBUGGER'S
  2849.     VECTOR AT $0318 GETS TRASHED BY ╔NIT╞OR╔╧.
  2850.  
  2851.     - ON THE ├128, ╔NIT╞OR╔╧ DOES NOT SWAP ╥╧═ IN CORRECTLY (IT IS CHANGING
  2852.     LOCATION $0001). ╙O WHEN IT FORCES THIS ╬═╔ TO OCCUR, THE 6510 USES
  2853.     THE VECTOR AT ┬1$╞╞╞┴ OR ┬0$╞╞╞┴, AND WE END UP IN THE DEBUGGER.
  2854.     ╘O SOLVE THIS PARTICULAR PROBLEM, ╔ HAVE ADDED CODE TO ╓2.0 TO POLL
  2855.     THE ├╔┴2 CHIP AFTER AN ╬═╔ OCCURS TO SEE IF IT WAS THE ╥┼╙╘╧╥┼ KEY OR
  2856.     THE ├╔┴2 CHIP. ╔F IT WAS THE ├╔┴2 CHIP, ╟EO─EBUGGER QUICKLY RETURNS
  2857.     TO THE APPLICATION.
  2858.  
  2859. ╚ANDLING ╬═╔S FROM THE ├╔┴ CHIP IN THIS MANNER IS A GOOD IDEA IN GENERAL,
  2860. ON BOTH THE ├64 AND THE ├128. ╔T ALLOWS THE USER TO WRITE PROGRAMS WHICH
  2861. USE THE ├╔┴2'S ╬═╔ CAPABILITY WITHOUT WORRYING ABOUT THE DEBUGGER GETTING
  2862. CONFUSED. ┬UT NOTE THAT THE USER'S APPLICATION WILL NOT RUN AS EXPECTED:
  2863. ANYTIME THE ├╔┴2 GENERATES AN ╬═╔, THE DEBUGGER WILL GET CONTROL, POLL THE
  2864. ├╔┴2 TO SEE THAT IT IS RESPONSIBLE, AND WILL RETURN TO THE APPLICATION.
  2865. ╘HE APPLICATION WILL HAVE NO WAY OF KNOWING THAT AN ╬═╔ OCCURRED, SINCE NOT
  2866. ONLY DID WE STEAL THE ╬═╔ INTERRUPT, WE ALSO CLEARED THE ├╔┴2 INTERRUPT STATUS
  2867. REGISTER JUST BY POLLING IT. ╘HAT'S LIFE IN THE BIG CITY!
  2868.  
  2869. ;*************************************************************************
  2870. ;                ─O╥BOOT
  2871. ;
  2872. ;    ╘HIS COMMAND DOES WHAT THE "╥┬╧╧╘" ICE MACRO DOES: IT PULLS THE ENTIRE
  2873. ;    ╟┼╧╙ KERNAL IN FROM ╥┼╒ BANK #0.
  2874. ;    
  2875. ;    ╘ALKED TO ─OUG 6/6/88:
  2876. ;    ╔F THE CURRENT DRIVE IS A ╥┴═ ─╔╙╦ WHEN THIS COMMAND IS INVOKED,
  2877. ;    THE DESK╘OP WILL COME UP OK. ╘HE DRIVE WHICH IS SELECTED WILL DEPEND
  2878. ;    UPON A COPY OF CUR─RIVE WHICH IS STORED IN THE ╥┼╒. (┘OU CAN CHANGE
  2879. ;    THIS COPY USING ╙ELECT╨RINTER FROM THE DESK╘OP.)
  2880. ;
  2881. ;    ╔F THE CURRENT DRIVE IS NOT A ╥┴═ ─╔╙╦ WHEN THIS COMMAND IS INVOKED,
  2882. ;    THEN THE DESK╘OP WILL NOT COME BACK UNTIL THE PHYSICAL DRIVE IS
  2883. ;    TURNED OFF AND BACK ON AGAIN.
  2884. ;
  2885. ;    ╘HE ONLY WAY TO IMPROVE THIS WOULD BE FOR THE DEBUGGER TO CALL
  2886. ;    ┼XIT╘URBO TO LET GO OF THE PHYSICAL DRIVE. ┬UT SINCE WE ARE NOT
  2887. ;    SURE THE ┼XIT╘URBO CODE IS STILL IN MEMORY, THAT IS A BAD IDEA.
  2888. ;    ╫E CAN'T CLOSE THE ┼XIT╘URBO CODE, BECAUSE IT IS DIFFERENT FOR
  2889. ;    EVERY DIFFERENT DISK TYPE.
  2890. ;
  2891.  
  2892. ╫E MAINTAIN TWO SEPARATE MEMORY POINTERS: ╨├ (ACTUAL PROGRAM COUNTER),
  2893. AND ╠├ (ADDRESS FOR OPEN COMMANDS). ┼ACH POINTER INCLUDES ADDRESS AND
  2894. MEMORY ENVIRONMENT INFORMATION.
  2895.  
  2896. ╬EW COMMANDS:
  2897.  
  2898. ╙╒╨┼╥        ═╔╬╔        USAGE
  2899. ---------------    ---------------    -----------------------------------------------
  2900. INITVIEW    --        COPY ╨├ ADDR AND BANK INFO TO ╠├
  2901. SETVIEW        SV        SET ╠├'S BANK INFO
  2902. VIEW        VW        DISPLAY CURRENT ╨├ AND ╠├ ADDRESS AND BANK INFO
  2903. USEVIEW        UV        CHANGE ╨├'S BANK INFO TO WHAT IS IN ╠├
  2904. B1        B1        SAME AS VIEW ($7┼,$00)
  2905. B0        B0        SAME AS VIEW ($3┼,$00)
  2906. ---------------    ---------------    -----------------------------------------------
  2907. SETVIEW, VIEW, AND USEVIEW ARE PRIMITIVES
  2908.  
  2909.  
  2910. POSSIBLE USAGES:
  2911.     VIEWING OTHER BANKS AND PROCEEDING FROM OLD ╨├ AND BANK:
  2912.                     ADDRESS        BANK INFO
  2913.                     --------------- -------------------
  2914.         A ADDRESS        ╠├ = ADDRESS    
  2915.         SETVIEW XX,XX                ╠├B = NEW BANK INFO
  2916.         A ADDRESS, ETC...    ╠├ = ANYTHING    ╠├B = ANYTHING
  2917.         GO            USES ╨├ ADDRESS AND BANK INFO
  2918.  
  2919.     SETTING A NEW ╨├ AND BANK:
  2920.                     ADDRESS        BANK INFO
  2921.                     --------------- -------------------
  2922.         VIEW XX,XX                ╠├B = NEW BANK INFO
  2923.         PC ADDRESS        ╨├ = NEW ADDR    ╨├B = ╠├B
  2924.     - OR -
  2925.         PC ADDRESS        ╨├ = NEW ADDR
  2926.         VIEW XX,XX                ╠├B = NEW BANK INFO
  2927.         USEVIEW                    ╨├B = ╠├B
  2928.  
  2929.     CHANGING ╨├'S BANK INFO WITHOUT CHANGING ╨├ ADDRESS
  2930.                     ADDRESS        BANK INFO
  2931.                     --------------- -------------------
  2932.         VIEW XX,XX                ╠├B = NEW BANK INFO
  2933.         USEVIEW                    ╨├B = ╠├B
  2934.  
  2935.     CHANGING ╨├ ADDRESS WITHOUT CHANGING BANK INFO:
  2936.                     ADDRESS        BANK INFO
  2937.                     --------------- -------------------
  2938.         PC            ╠├ = ╨├        ╠├B = ╨├
  2939.          (ONLY REQUIRED IF HAVE CHANGED ╠├ SINCE ╥┼╙╘╧╥┼ KEY)
  2940.         PC NEW ADDRESS        ╨├ = NEW    ╨├B = ╠├
  2941.  
  2942.  
  2943. ╨OSSIBILITY FOR FUTURE ╓╔┼╫ COMMAND:
  2944. WHEN INVOKED WITHOUT ARGUMENTS, DIPLAYS:
  2945.  
  2946. - ╙╨╠╔╘ ╔╬╘╧ ╨├ ┴╬─ ╠├ ├╧╠╒═╬╙ - 
  2947.  
  2948. ┴DDRESS ╥ANGE  ╥AM ┬ANK ╓ISIBLE  ╧VERRIDE
  2949. -------------  ----------------  --------
  2950. $╞├00 - $╞╞╞╞        1    ╥╧═
  2951. $╞800 - $╞┬╞╞        1    ╥╧═
  2952. $╞000 - $╞7╞╞        1    ╥╧═
  2953. $┼000 - $┼╞╞╞        1    ╥╧═
  2954. $─000 - $─╞╞╞        1    ╔/╧
  2955. $├000 - $├╞╞╞        1
  2956. $┬000 - $┬╞╞╞        1
  2957. $┴000 - $┴╞╞╞        1
  2958. $9000 - $9╞╞╞        1
  2959. $8000 - $8╞╞╞        1
  2960. $7000 - $7╞╞╞        1
  2961. $6000 - $6╞╞╞        1
  2962. $5000 - $5╞╞╞        1
  2963. $4000 - $4╞╞╞        1
  2964. $3000 - $3╞╞╞        1
  2965. $2000 - $2╞╞╞        1
  2966. $1000 - $1╞╞╞        1
  2967. $0800 - $0╞╞╞        1
  2968. $0400 - $07╞╞        0
  2969. $0000 - $03╞╞        0
  2970.  
  2971. USE PRINT HEX WORD ROUTINE, ADDING $0FFF TO GET RIGHT SIDE
  2972. START INCREMENT AT $0400, OFFSET AT $03╞╞
  2973. ONCE GET TO $1000, INC = $1000, OFFSET = $0╞╞╞
  2974.  
  2975.  
  2976.         ╚OW ╟EO─EBUGGER MANAGES MACHINE-DEPENDENT
  2977.             MEMORY-MAP ENVIRONMENT INFORMATION
  2978.  
  2979. ╘HE DEBUGGER CARRIES MEMORY-MAP ENVIRONMENT INFORMATION, WHICH IS MACHINE-
  2980. DEPENDENT, AROUND IN GENERIC VARIABLES SUCH AS APP┬ANK╔NFO1 AND APP┬ANK╔NFO2.
  2981. ╘HIS WAY, THE ROUTINES WHICH JUST MOVE THIS INFORMATION AROUND (BUT DON'T
  2982. DIRECTLY USE IT) ARE MACHINE-INDEPENDENT.
  2983.  
  2984. ┼XECUTION ┼NVIRONMENT:
  2985.  
  2986. ╫HEN THE DEBUGGER STOPS EXECUTION OF AN APPLICATION (╥┼╙╘╧╥┼ PRESSED OR
  2987. ╙┬╨ HIT), THE USER'S "EXECUTION ENVIRONMENT" IS SAVED. ╘HIS INCLUDES:
  2988.  
  2989.     PROCESSOR REGISTER AND FLAG VALUES
  2990.     ╨├ ADDRESS
  2991.     CURRENT BANK INFORMATION
  2992.     ZERO PAGE VARIABLES
  2993.     STACK INFORMATION
  2994.  
  2995. ╫E CALL THE ╨├ ADDRESS AND ITS MEMORY-MAP INFORMATION THE "┼XECUTION
  2996. ┼NVIRONMENT" OR MORE SIMPLY, THE "╨├ POINTER".
  2997.  
  2998. ╓IEWING ┼NVIRONMENT:
  2999.  
  3000. ╧NCE THE DEBUGGER HAS STOPPED AN APPLICATION, THE "VIEWING ENVIRONMENT" IS THE
  3001. SAME AS THE "EXECUTION ENVIRONMENT". ╘HIS MEANS THAT ALL OF THE MEMORY
  3002. EXAMINATION AND MODIFICATION COMMANDS USE THE SAME MEMORY-MAP INFORMATION AS
  3003. THE ┼XECUTION ┼NVIRONMENT.
  3004.  
  3005. ╘HROUGH USE OF THE ╙┼╘╓╔┼╫ COMMAND, THE VIEWING ENVIRONMENT CAN BE CHANGED.
  3006. ┘OU CAN SET UP A NEW MEMORY-MAP CONFIGURATION, AND THEN USE THE MEMORY
  3007. EXAMINATION AND MODIFICATION COMMANDS TO READ/WRITE MEMORY IN THIS NEW
  3008. CONFIGURATION.
  3009.  
  3010. ╫HEN YOU GIVE THE ╟╧ COMMAND TO RESUME EXECUTION, THE DEBUGGER RESTORES THE
  3011. EXECUTION ENVIROMENT, AND YOUR PROGRAM CONTINUES EXECUTION.
  3012.  
  3013. ╫E CALL THE VIEWING ADDRESS AND ITS ENVIRONMENT THE "╠├ POINTER".
  3014.  
  3015. -------------------------------------------------------------------------------
  3016. ┴SPECTS OF ╟EO─EBUGGER WHICH MUST CHANGE ACCORDING TO MACHINE-DEPENDENCIES
  3017. IN ╓2.0, TO REMAIN COMPATIBLE WITH ╓1.0. (╦ILL THESE IN ╓3.0.)
  3018.  
  3019. ╥EGISTER COMMAND:
  3020.     DISPLAYS ╨├ ADDRESS, HIGHLIGHTS ADDRESS IF EFFECTIVE ADDRESS OF
  3021.         ╨├ (CONSIDERING ╨├ BANK INFO) IS BANK 0.
  3022.  
  3023.     DISPLAYS ├╨╒_─┴╘┴ VALUE (╔T REALLY SHOULD NOT DO THIS ANYMORE,
  3024.         BUT ╔ AM TRYING TO MAINTAIN COMPATABILITY WITH ╓1.
  3025.  
  3026.         64:    READ DIRECTLY FROM APP┬ANK╔NFO1
  3027.  
  3028.         128:    [7-3,0]: DIRECT READ FROM MEMORY
  3029.             [21]: SHADOW WITH APP├╨╒_┬21
  3030.  
  3031. ╥EGISTER ╧PEN ├OMMAND:
  3032.     ..INCLUDES ══ REGISTER: IS ├╨╒_─┴╘┴. (╘O BE COMPATIBLE WITH ╓1)
  3033.     64:    DIRECTLY READ/WRITE TO APP┬ANK╔NFO1
  3034.  
  3035.     128:    [7-3,0]: DIRECTLY ╥/╫ TO MEMORY
  3036.         [21]: SHADOW WITH APP├╨╒_┬21
  3037.  
  3038. -------------------------------------------------------------------------------
  3039. ┴SPECTS OF ╟EO─EBUGGER WHICH ARE MACHINE-INDEPENDENT.
  3040.  
  3041. ═EMORY EXAMINATION AND MODIFICATION:
  3042.     BANK COMMAND:    AFFECTS ╠├'S BANK INFO: CUR┬ANK╔NFO1 AND CUR┬ANK╔NFO2
  3043.  
  3044.     OPEN MODES:    USES ╠├'S BANK INFO
  3045.             HIGHLIGHTS ADDRESS IF IS IN PHYSICAL BANK 0
  3046.  
  3047.     DUMP COMMAND:    USES ╠├'S BANK INFO
  3048.             HIGHLIGHTS ADDRESS IF IS IN PHYSICAL BANK 0
  3049.  
  3050.     MOVE/FILL/DIFF/FIND:    USES ╠├'S BANK INFO
  3051.                 HIGHLIGHTS ADDRESS IF IS IN PHYSICAL BANK 0
  3052.  
  3053.     @ AND @@ OPERATORS:    USES ╠├'S BANK INFO
  3054.  
  3055. ╙INGLE AND ╘OP-STEP BREAKPOINTS:
  3056.     MAINTAIN THEIR OWN BANK INFORMATION
  3057.         (COPIED FROM ╨├ BANK INFO BEFORE EXECUTION BEGUN)
  3058.  
  3059. ╙OFTWARE ┬REAKPOINTS:
  3060.     MAINTAIN THEIR OWN BANK INFORMATION
  3061.         (COPIED FROM ╨├ BANK INFO BEFORE EXECUTION BEGUN)
  3062.  
  3063. ╨├ COMMAND:
  3064.     WITHOUT ARGUMENT:    COPY ╨├ ADDRESS AND BANK INFO TO ╠├
  3065.                 (RESTORES EXECUTION ENVIRONMENT)
  3066.  
  3067.     WITH ARGUMENT: (SAME AS SETTING ╨├ IN OPEN MODE)
  3068.                 SET ╨├ ADDRESS = ARGUMENT
  3069.                 SET ╨├ BANK INFO = ╠├ BANK INFO
  3070.  
  3071. ╫OULD BE NICE:
  3072.  
  3073. ╓3.0: MAKE ╥┼╒ SUPER MONITOR HAVE OPTION TO USE 32╦ BACKRAM FOR SYMBOL TABLE...
  3074.  
  3075. ╫OULD BE COOL IF DEBUGGER COULD CHECKSUM RAM EXPANSION TO SEE IF IS
  3076. ALREADY UP THERE (SO COULD ASSEM, LINK, DEBUG, ASSEM, LINK, DEBUG
  3077. REALLY QUICKLY WHEN GEO─EBUG IS ON DISK, AND NOT ON RAMDISK). 
  3078.  
  3079. ╫HY NOT WAIT TILL JUST AFTER INTERRUPT CODE RUNS TO DISABLE
  3080. INTERRUPTS BEFORE GOING TO USER'S CODE? ╫OULD FLICKER A BIT LESS.
  3081.  
  3082. ╫ARN USER IF WHEN WE BREAK HIS ╙╨ IS SO LOW THAT MONITOR CODE WILL WRAP
  3083. IT AROUND...
  3084.  
  3085. ╔F ╬═╔ COULD REALIZE WHAT IT INTERRUPTED AND COULD MAKE REPAIRS SO
  3086. A ╟╧ WOULD NOT CRASH US.
  3087.  
  3088. ╔F THE TOP-STEP COMMAND COULD RECOGNIZE CALLS TO MOST OF THE ╟┼╧╙ INLINE
  3089. ROUTINES AND STOP AND WARN THE USER WHAT IS ABOUT TO HAPPEN.
  3090.  
  3091. ┬EGIN AND ┼ND STRUCTURES IN MACROS. ╔F AND FOR MACROS COULD SKIP TO
  3092. NEXT "END". ═IGHT EVEN ADD COUNTER SO COULD BE SEVERAL LEVELS DEEP.
  3093.  
  3094. ├LEAN UP ENTIRE S/T/P/GO CONDITIONED/LEAP-FROGGED STRUCTURE
  3095. ├LEAN UP ENTIRE OPEN MODE THING
  3096. ├LEAN UP MOVE/DIFF/FILL/FIND
  3097.  
  3098.     ┴DD INTELLIGENCE TO PARSE MACRO SO THAT IF ARGS ARE THERE BUT NOT
  3099.     EXPECTED, GENERATES ERROR.
  3100.     ALLOW MACRO DEFS WHICH ARE BIGGER THAN SIZE OF INPUT BUFFER?
  3101.     (ESPECIALLY WHEN LOADING FROM FILE.)
  3102.